sqlinsert触发器遍历inserted表取数据操作,有时候使用组合语句
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