create trigger tr_tb_d on tb for delete as delete tb1 from tb1,deleted where tb1.keycol = deleted.keycol
有外健關系時用級聯刪除 create table T(ID int unique)create table T22 (ID int references T(ID) on delete cascade) create table T33 (ID int references T(ID) on delete cascade)
as
delete tb1 from tb1,deleted where tb1.keycol = deleted.keycol
create table T(ID int unique)create table T22 (ID int references T(ID) on delete cascade)
create table T33 (ID int references T(ID) on delete cascade)
不要用触发器,直接用sql语句删除
触发器里没有写删除第二张,
没有用事务,
先删除第一张,成功了
再删除第二张,不成功
想知道为什么,不会是sqlserver的原因吧
在程序里用事物控制,可以保证数据的一致性
如果where条件是主键,就不用判断第一次删除是否返回1了.
完了再 set nocount on
原因:
因为它隐藏业务逻辑,不易被程序员发现
因为触发器不容易处理数据
因为多个人写触发器,有时写成死while
因为一个系统有几k个触发器的话,太难维护
....个人意见,不代表正确性...