使用游标循环进行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
--开始事务
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事务语句
- 利用游标循环进行更新插入的SQL事务语句
- 利用游标循环进行更新插入的SQL事务语句
- 利用游标循环进行更新插入的SQL事务语句
- 利用游标循环进行更新插入的SQL事务语句
- 利用游标循环进行更新插入的SQL事务语句 ~
- 使用游标 ----循环把SQL语句中的每条记录插入到另一个表中
- 使用SQL游标进行循环插入数据
- 如何在游标for循环中使用动态SQL语句?
- 在C#下使用sql语句(查询,插入,更新,删除……)
- 使用SQL语句对表进行插入、修改和删除数据操作
- 如何在游标for循环中使用动态SQL语句?
- C#下使用sql语句查询,插入,更新,删除
- 使用SQL游标对数据进行遍历循环操作
- 关于使用游标更新数据和Case语句进行更新的实现过程
- ASP.NET基础教程-使用CommandBuilder对象自动生成SQL语句对数据进行批量更新
- oracle使用游标进行循环数据插入
- 使用T-SQL语句插入、更新、删除数据表
- ASP.NET基础教程-使用CommandBuilder对象自动生成SQL语句对数据进行批量更新