sql server数据库中如何用游标进行更新

sql server数据库中如何用游标进行更新,第1张

with A AS(select *,ROW_NUMBER() OVER(PARTITION BY 用户 ORDER BY b) ID from 表A)

UPDATE A SET b=ID

DECLARE @i int

SET @i= 0

UPDATE SET b = @i,@i=@i+1

如果是按插入的顺序来重新排的话。这样最快。如果你的表中有时间字段。可以按这个字段来排序,不过就要用游标了。

动态游标

动态游标与静态游标相对。当滚动游标时,动态游标反映结果集中所做的所有更改。结果集中的行数据值、顺序和成员在每次提取时都会改变。所有用户做的全部

UPDATE、INSERT

DELETE

语句均通过游标可见。如果使用

API

函数(如

SQLSetPos

)或

Transact-SQL

WHERE

CURRENT

OF

子句通过游标进行更新,它们将立即可见。在游标外部所做的更新直到提交时才可见,除非将游标的事务隔离级别设为未提交读。

以游标打开时刻的当时状态显示结果集的游标。静态游标在游标打开时不反映对基础数据进行的更新、删除或插入。有时称它们为快照游标。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6675685.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-26
下一篇 2023-03-26

发表评论

登录后才能评论

评论列表(0条)

保存