[英]Update a column of a table to be a sequence
我想使用存储过程的结果更新表的列
create procedure seq
as
DECLARE @NextValue INT;
INSERT SequencesTable DEFAULT VALUES;
DELETE SequencesTable WITH(READPAST);
SELECT SCOPE_IDENTITY();
go
我不能使用UDF,因为它是节点确定的。 这样的事情是行不通的
UPDATE [dbo].[t1] SET [c1] = seq
我有一种错误的感觉。
我只想更新一个看起来像这样的表
1 1
2 2
1 4
1 4
5 5
1 2
看起来像这样
1 1
2 2
3 4
4 4
5 5
6 2
尝试这样的事情:
update a set c1 = c1_new
from (
select
c1, c2
, c1_new = row_number() over (order by nullif(c1,c1))
from dbo.t1
) a
处理内部查询,直到获得所需的内容,然后应用更新。
NULLIF(c1,c1)尝试保留磁盘上的原始顺序。 它始终返回null。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.