有时候使用组合语句
Insert into TableName Select *from Inserted where ...
或者
Update TableA set TableA .1 =TableAB.1 ,TableA .2 =TableB.2 from TableB where (TableB.x =xx or TableB.3 =TableA.2)
可以直接遍历到临时表中所有符合的数据并且执行insert或者update语句,但是也有时候不用这样的组合语句的时候 只能读取到比如说inserted表中的第一条数据,并不是对每一条insert都会触发。所以笔者翻阅了好几天网上,得知可以用游标来循环遍历数据表进而可以对每条数据进行操作。具体代码如下:
Creat Trigger triggerName on TableName
for inserted
as
/*一些操作*/
delclare cur_Insert cursor for /*申明游标*/
select * from inserted
open cur_Insert
fetch next from cur_Insert into @a,@b ...
/*一些操作*/
while @@FETCH_STATUS =0
begin
/*一些操作*/
fetch next from cur_Insert into @a,@b ... /*重点别忘了*/
end
close cur_Insert
deallocate cur_Insert