使用SQL中的循环,可以实现许多我们需要的操作,比如SQL更新操作。下面就为您介绍使用游标循环进行SQL更新插入的SQL语句写法,希望对您深入学习SQL更新有所帮助。
--开始事务 BEGIN TRAN
--不显示计数信息 SET NOCOUNT ON DECLARE @ProjNo varchar(50),@CusNo varchar(50)
--声明游标 DECLARE CRMPSContact_cursor CURSOR FOR SELECT ProjNo FROM CRMPSContact WHERE ProjNo>0
--打开游标 OPEN CRMPSContact_cursor
--取第一行的值给专案变量: @ProjNo FETCH NEXT FROM CRMPSContact_cursor INTO @ProjNo
--取得客户号 select @CusNoCusNo = CusNo from CRMPSProjectM where ProjNo = @ProjNo
--得到CRMPSContact中某专案号对应的客户号 update CRMPSContact set CusNo = @CusNo where ProjNo = @ProjNo
--执行错误回滚 if @@error!=0 begin rollback tran return end
--移动游标,其它所有行更新操作(当到结尾时退出) WHILE @@FETCH_STATUS = 0 BEGIN
--游标移到下一行 FETCH NEXT FROM CRMPSContact_cursor INTO @ProjNo
--取得客户号 select @CusNoCusNo = CusNo from CRMPSProjectM where ProjNo = @ProjNo
--得到CRMPSContact中某专案号对应的客户号 update CRMPSContact set CusNo = @CusNo where ProjNo = @ProjNo
--执行错误回滚 if @@error!=0 begin rollback tran return end END
--提交所有变更 COMMIT TRAN
--关闭游标 CLOSE CRMPSContact_cursor
--释放游标 DEALLOCATE CRMPSContact_cursor
--恢复设置 SET NOCOUNT OFF GO
文章转载自网管之家:http://www.bitscn.com/pdb/mssql/201010/191165.html