首页 > 数据库技术 > 详细

SQL游标 更新

时间:2015-12-22 19:20:58      阅读:226      评论:0      收藏:0      [点我收藏+]

--定义游标
DECLARE cur_getaddress CURSOR
FOR
SELECT
new_a
,new_b
,new_c
,new_d

FROM table
WHERE (new_a is not null and new_b is not null and new_x IS NULL) or
(new_c is not null and new_d is not null and new_y IS NULL )
--打开游标
OPEN cur_getaddress
DECLARE @a VARCHAR(20) , @b VARCHAR(20),@c VARCHAR(20) , @d VARCHAR(20)
FETCH NEXT FROM cur_getaddress INTO @a, @b ,@c,@d
WHILE @@fetch_status = 0
BEGIN

SET NOCOUNT ON ;
SET xact_abort ON
--开始事务
BEGIN TRANSACTION
--延时150毫秒
WAITFOR DELAY ‘00:00:00.150‘
--更新
UPDATE table
SET new_x = dbo.[GetAddressByLonLat](@a,@b)
WHERE new_a=@a AND new_b = @b AND new_x IS NULL
--延时150毫秒
WAITFOR DELAY ‘00:00:00.150‘
UPDATE table
SET new_y = dbo.[GetAddressByLonLat](@c,@d)
WHERE new_c=@c AND new_d = @d AND new_y IS NULL
COMMIT TRANSACTION
--取下一个数据
FETCH NEXT FROM cur_getaddress INTO  @a, @b ,@c,@d

END
CLOSE cur_getaddress ;
DEALLOCATE cur_getaddress ;

SQL游标 更新

原文:http://www.cnblogs.com/BinBinGo/p/5067487.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!