如何设置改变表等于行没有SQL Server 2008中,这是我想列的值等于没有后已添加的列的值。 排。 我也希望此字段允许空值。 因此,它是像自动递增,但允许这就是为什么不想使用标识或主键列具有自动增量空值。 那么,怎样才能将它设置为排不? 任何帮助将不胜感激。
Answer 1:
如果您尝试更新直接使用ROW_NUMBER列(),你会得到...
窗函数只能出现在SELECT或ORDER BY子句。
...所以不是INNER JOIN表本身...
UPDATE
[test123]
SET
[row_number] = [x].[rn]
FROM
[test123]
INNER JOIN
(
SELECT
[test_id],
ROW_NUMBER() OVER (ORDER BY [test_id]) AS rn
FROM
[test123]
) AS x
ON
[test123].[test_id] = [x].[test_id]
Answer 2:
这个怎么样:它会更新所需的列行号的值。
select 'Update myTable set row_No = ' +
CAST(ROW_NUMBER() over (order by ID) as varchar) + ' Where ID = ' +
cast(ID as varchar) from myTable
--The结果会产生当你运行它会更新所需的列行号的值更新语句。
文章来源: how to set column value equal to row no?