问题描述
求帮我改个插入行的触发器,有重复名字FLAG=2,345ALTERTRIGGER[dbo].[charu4]ON[dbo].[gongzuoliang]AFTERINSERTASBEGINdeclare@IDintdeclare@teachernamenvarchardeclare@flagfloatdeclare@zongkeshifloatdeclare@zksfloatdeclarecur_InsertcursorforselectID,teachername,flag,zongkeshi,zksfrominsertedopencur_Insertfetchnextfromcur_Insertinto@ID,@teachername,@flag,@zongkeshi,@zkswhile@@fetch_status=0beginset@flag=(selectcount(*)from[dbo].[gongzuoliang]whereteachername=@teachername)update[dbo].[gongzuoliang]setflag=@flagwhereid=@idfetchnextfromcur_Insertinto@ID,@teachername,@flag,@zongkeshi,@zksendclosecur_Insertdeallocatecur_InsertEND
解决方案
解决方案二:
为什么要用游标么?新增哪行,就取得哪行数据更新就行了
解决方案三:
我是将另一个表,查询的数据,从而插入进来本表
解决方案四:
ALTERTRIGGERTestON[dbo].[gongzuoliang]AFTERINSERTASdeclare@countintset@count=0;BEGINselect@count=count(1)frominsertedtestwhereteachername=(selectteachernamefrominserted)updatedbo.gongzuoliangsetflag=@countwhereteachername=(selectteachernamefrominserted)END----你这个只要处理当前行就可以了,没必要每次处理所有行