概述
SQLSERVER触发器内INSERT,UPDATE,DELETE三种状态
CREATE TRIGGER Tri_Product_OrderSnapshot ON [T_Product] for INSERT,UPDATE,DELETE
如IF exists (select * from inserted) and not exists (select * from deleted) 则为 INSERT
如IF exists(select * from inserted ) and exists (select * from deleted) 则为 UPDATE
如IF exists (select * from deleted) and not exists (select * from inserted)则为 DELETE
插入操作(Insert):Inserted表有数据,Deleted表无数据
删除操作(Delete):Inserted表无数据,Deleted表有数据
更新操作(Update):Inserted表有数据(新数据),Deleted表有数据(旧数据)
1.插入触发器实例
表1 (ID,NAME)
表2 (ID,NAME)
当用户插入表1数据后,表2也被插入相同的数据
CREATE TRIGGER TRI1
ON 表1
FOR INSERT
AS
BEGIN
INSERT INTO 表2 SELECT * FROM INSERTED
END
GO
2.修改触发器
表1 (ID,NAME)
表2 (ID,NAME)
当用户更改表1 NAME列数据后,表2相应ID的数据也同时更新
CREATE TRIGGER TRI3
ON 表1
FOR UPDATE
AS
IF UPDATE(NAME)
BEGIN
UPDATE 表2
SET A.NAME = B.NAME
FROM 表2 A, INSERTED B
WHERE A.ID = B.ID
END
GO
3.删除触发器
表1 (ID,NAME)
表2 (ID,AGE,GENDER)
当用户删除表1某条ID的数据后,表2相应ID的数据也被删除
CREATE TRIGGER TRI2
ON 表1
FOR DELETE
AS
BEGIN
DECLARE @id INT
SELECT @id FROM DELETED
DELETE 表2
WHERE ID = @id
END
GO
最后
以上就是勤恳小土豆为你收集整理的SQL SERVER 2008 创建触发器的全部内容,希望文章能够帮你解决SQL SERVER 2008 创建触发器所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复