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