27,579
社区成员
发帖
与我相关
我的任务
分享
--------delete 触发器
if exists(select * from sysobjects where name='tri_delCardInfo' and type='TR')
drop trigger tri_delCardInfo
go
create trigger tri_delCardInfo
on card
instead of delete
as
begin
delete from transInfo where cardNo in (select cardNo from deleted)
delete from card where cardNo in (select cardNo from deleted)
end
-------------------------------------------------------------------------
---当执行一下操作时候:
--delete from card where cardNO in ('100019','100009')
-----------------------------------------------------------------------
--返回如下结果:
-----------------------------------------------------------------------
(5 行受影响)------5行受影响可以明白,是删除了transInfo 表中CardNO为‘09’与‘19’的数据。
我的问题是:下面为什么有2个(2行受影响)???其中肯定有一个是删除了Card表的2行,另一个勒?
------------------
(2 行受影响)
(2 行受影响)
begin
--SET NOCOUNT ON
delete from transInfo where cardNo in (select cardNo from deleted)
--delete from card where cardNo in (select cardNo from deleted)
end
-----------------
如果我改成上面的就只会修改1个表中的数据就是transinfo表。
虽然执行了:delete from card where cardNO in ('100019','100009')
但是:card表是不会被删除的。
为什么结果:
还是这样勒:
--------------------------------
5行受影响
2行受影响???是不是输入:card表没有删除物理数据,但是他想deleted表中写入了2条??
如果是这样那为什么inserted表中写入的时候不是这样勒?
请大牛帮忙