使用SQL中的循环,可以实现许多我们需要的操作,比如SQL更新操作。接下来的SQL server内容就为您介绍使用游标循环进行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