/**
* 觸發器的使用
* 觸發器在一次會話中,會產生兩張臨時表
* 1.deleteed 刪除動作臨時表,記錄刪除的數據。
* 2.insert 插入動作臨時表,記錄插入的數據。
* 3.觸發器不存在update 臨時表,因爲update操作是先刪除,再插入。
* 4.上面兩張臨時表,表結構和當前操作表結構是相同的。
**/
--創建一個觸發器。eg: create trigger 觸發器名稱
CREATE TRIGGER triLog
--針對那個表來觸發,類似事件。eg: on 表名
ON dbo.Table
--for 限制觸發的動作,數據庫動作有insert delete
--instead of 不限制操作,一般用來刪除數據
FOR INSERT
--操作什麼動作
AS
--開始
BEGIN
--編寫動作代碼塊
DECLARE @Name VARCHAR(50);--定義一個變量,記錄操作人name
SELECT @Name=Name FROM INSERTED
INSERT INTO TrigLog(LOGCONTENT, CREATEUSER, LOGTYPE)
VALUES
('添加數據', @Name, '添加')
END
--結束
--創建日誌表
CREATE TABLE TrigLog(
ID INT IDENTITY(1,1) NOT NULL,
LOGCONTENT NVARCHAR(100),
CREATEUSER INT NOT NULL,
LOGTYPE NVARCHAR(50),
CREATEDATETIME DATETIME,
PRIMARY KEY (ID)
)
--演示插入數據
INSERT INTO TABLE(l1,l2) VALUES(l1,l2);
插入結果:
從上面可以看見,影響行數是兩行,一行是數據源本身,另一行就是觸發器自動記錄數據
SELECT * FROM TrigLog