IF EXISTS (SELECT name FROM sysobjects WHERE name = 'myTrigger' AND type = 'TR')
BEGIN
DROP TRIGGER myTrigger
END
GO
go
create trigger myTrigger
on mytable_backup
instead of insert
as
begin
declare @seq int
select @seq = seq from inserted
if exists (select * from mytable_backup where seq= @seq) begin
delete from mytable_backup where [email protected]
end
insert into mytable_backup
select * from inserted
end
go
我写这个触发器来检查,同时插入如果重复seq
柱,然后用同样的seq
如果seq
不退出新seq
插入更新上一行。ms sql server中触发问题?
在ssis包中,我使用OLEDB表(Mytable
)作为源包含。
Name,Age,Seq
Gauraw,30,1
Gauraw,31,1
Kiran,28,3
Kiran,29,3
kiran,28,3
Venkatesh,,4
Venkatesh,28,4
现在我加载此表OLEDB目的地(Mytable_backup
)作为目标。 我想输出为。
Gauraw,31,1
kiran,28,3
Venkatesh,28,4
但我发现了从Mytable
所有记录到Mytable_backup
。
我的触发器有什么问题吗?
与大多数SQL操作一样,触发器在集上操作。你们假设一次只插入一行。这并不是一个好兆头。 – HABO 2012-03-28 12:19:23