您的位置:首页 > 数据库

使用游标循环进行SQL更新插入的SQL语句

2014-03-04 15:55 381 查看
使用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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: