使用SQL中的循环,可以实现许多我们需要的操作,比如SQL更新操作。下面就为您介绍使用游标循环进行SQL更新插入的SQL语句写法,希望对您深入学习SQL更新有所帮助。

创新互联是一家专业的成都网站建设公司,我们专注网站制作、成都网站制作、网络营销、企业网站建设,外链,一元广告为企业客户提供一站式建站解决方案,能带给客户新的互联网理念。从网站结构的规划UI设计到用户体验提高,创新互联力求做到尽善尽美。
- --开始事务
 - 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
 
【编辑推荐】
 教您如何进行SQL跨表更新
SQL中IS NULL的语法
SQL中if语句的用法示例
速学如何定义SQL存储过程
sql server表改为dbo的方法