CREATE TRIGGER utr_bbdel ON dbo.crbb_t Instead of DELETE AS set nocount on declare @crbb001_o char(20) declare @iFlag int declare @iCount int select @iCount = count(*) from deleted print @iCount if @iCount > 0 Begin
declare my_cur cursor for select crbb001 from deleted open my_cur fetch my_cur into @crbb001_o
while @@fetch_status = 0 begin delete crsb_t where crsb001 = @crbb001_o if @@error <> 0 set @iFlag = @iFlag + 1 delete from crbb_t where crbb001 = @crbb001_o if @@error <> 0 set @iFlag = @iFlag + 1
end end if @iFlag > 0 ROLLBACK TRANSACTION触发器如上,还是不行,执行过程中就没有响应了。
CREATE TRIGGER Trg_Name ON A FOR Delete AS Delete b where Deleted.主键=b.关联主键 GO
这个我也说不太清楚。好象FOR是后触发器,就是说,先删除,而后在触发,这个时候,如果一个表同时是另外一个表的外键那么是不能立刻删除的,除非你设定了,级联删除。INSTEAD OF 好象是前触发器,就是说先触发后删除。具体我也没有使过,不是很清楚。你还是看看帮助吧。
Instead of DELETE
AS set nocount on declare @crbb001_o char(20)
declare @iFlag int
declare @iCount int select @iCount = count(*) from deleted
print @iCount
if @iCount > 0
Begin
declare my_cur cursor for
select crbb001 from deleted
open my_cur
fetch my_cur into @crbb001_o
while @@fetch_status = 0
begin
delete crsb_t
where crsb001 = @crbb001_o
if @@error <> 0
set @iFlag = @iFlag + 1 delete from crbb_t
where crbb001 = @crbb001_o
if @@error <> 0
set @iFlag = @iFlag + 1
end
end
if @iFlag > 0
ROLLBACK TRANSACTION触发器如上,还是不行,执行过程中就没有响应了。
ON A
FOR Delete
AS
Delete b where Deleted.主键=b.关联主键
GO