mssql触发器的使用
我有两个表: test1,test1。两个表中有个相同字段,为t_name,并且是一一对应的,没有任何外键约束,添加数据时,在test1,test2都添加有信息,但是做其他操作时,只有test2才会添加数据,这样的话,test1实际是1条数据,而test2 是多条数据,不做任何级联删除,程序中也不能使用同步删除,就做一个触发器,条件是:删除test1中某个t_name,对应在test2中所有的t_name都被删除,触发器该怎样写呢?求解啊!!!
我有两个表: test1,test1。两个表中有个相同字段,为t_name,并且是一一对应的,没有任何外键约束,添加数据时,在test1,test2都添加有信息,但是做其他操作时,只有test2才会添加数据,这样的话,test1实际是1条数据,而test2 是多条数据,不做任何级联删除,程序中也不能使用同步删除,就做一个触发器,条件是:删除test1中某个t_name,对应在test2中所有的t_name都被删除,触发器该怎样写呢?求解啊!!!
答案:CREATE TRIGGER [trd_DeleteTest1]
ON [dbo].[test1]
FOR DELETE
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
DELETE test2 WHERE t_name IN (SELECT t_name FROM DELETED)
END
其他:CREATE TRIGGER tr_sync_delete ON test1
FOR DELETE
AS
BEGIN
SET NOCOUNT ON;
DELETE FROM test2 WHERE test2.t_name = DELETED.t_name
END
上一个:有知道在mssql 中怎么才能继续使用limit吗?
下一个:MSSQL 中,怎么批量删除 _WA _sys 开头自动创建的索引