sqlinsert触发器遍历inserted表取数据操作

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
(0)
上一篇 2022年3月21日
下一篇 2022年3月21日

相关推荐