/**
* 触发器的使用
* 触发器在一次会话中,会产生两张临时表
* 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