当前位置:数据库 > SQLServer >>

mssql触发器的使用

我有两个表: 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 开头自动创建的索引

Oracle
MySQL
Access
SQLServer
DB2
Excel
SQLite
SYBASE
Postgres
如果你遇到数据库难题:
请访问www.zzzyk.com 试试
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,