ami*_*mit 1 sql sql-server-2008
我想改变seqid:
使用一个更新语句.
UserID seqid
1 1
1 2
1 3
1 4
Run Code Online (Sandbox Code Playgroud)
确保在运行任何更新之前进行备份,以防出错.
假设(根据您的问题)您不希望seqid4修改:
update MyTable
set seqid = seqid + 1
where seqid between 1 and 3
Run Code Online (Sandbox Code Playgroud)
如果你只想增加每一个seqid,请执行:
update MyTable
set seqid = seqid + 1
Run Code Online (Sandbox Code Playgroud)
编辑添加:如果你想在提交之前看到你正在做的结果(做出这种改变时的一个好主意):
begin tran
select seqid, count(*)
from Mytable
where seqid between 1 and 4
update MyTable
set seqid = seqid + 1
where seqid between 1 and 3
select seqid, count(*)
from Mytable
where seqid between 1 and 4
--rollback tran
--commit tran
Run Code Online (Sandbox Code Playgroud)
如果您看到Seqids的数量是正确的并且不要忘记提交;请特别在prod上打开交易!但这对于测试更新或删除是个好主意,当你不肯定会产生什么样的影响时.
如果您有一个复杂的更新,另一种尝试的方法是:
update mt
set seqid = seqid + 1
--select seqid, seqid+1, *
From MyTable mt
where seqid between 1 and 3
Run Code Online (Sandbox Code Playgroud)
这样您就可以运行select并提前查看每个值将被更改的内容.