sqlserver2000 的触发器问题(100分)

  • 主题发起人 主题发起人 powernet
  • 开始时间 开始时间
P

powernet

Unregistered / Unconfirmed
GUEST, unregistred user!
在sqlserver2000中有表a,表b
a为主表,b为从表
1:假如,a的关键字是b的关键字的一部分,
用表级联删除与级联修改就可以在修改或者删除a的记录时完成对表b的操作。
2:但是,如果a的关键字不是b的关键字,只是引用而已,
级联修改还可以。
但是级联删除,就会删除从表的记录,而此时希望把相关字段置为null就可以了。
如果用instead of 触发器,它可以完成上述的工作,但是它代替执行delete语句,
反而不删除主表的记录。



请问各位大侠这个问题怎么解决。

 
为什么一定要用instead of 触发器
在删除触发器中不是一样可以实现从表置空操作
 
如果是后触发,
那么表A的相关记录就无法删除,因为被表b引用了
 
SQL Server的触发器没有前后触发之分,可以在删除主表记录前,线将从表相关字段置空,
用Update即可
 
这个办法不算好
 
你的触发器是建立在a表上的
你用的是instead of
那么
declare @prim1 你的数据类型
select @prim1 = 你的关键字值 from deleted
delete from a where 你的关键字段 = @prim1
就能可以了
另外注意你操作级联的问题,如果你定义了Update或Delete你就不能再用Instead of 了
 
多人接受答案了。
 
后退
顶部