Sql--觸發器的簡單使用

/**
* 觸發器的使用
* 觸發器在一次會話中,會產生兩張臨時表
* 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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章