Kee*_*ker 9 sql t-sql sql-server-2008
我有一个Site用列命名的表Name,SiteId和Sequence.我想Sequence用rownumber 填充这个领域.我尝试了以下查询,但它只是不更新记录:
WITH RowNumbers AS
(
select SiteId,
RowNum = row_number() OVER ( order by SiteId )
from [Site]
)
UPDATE s
SET s.[Sequence] = r.RowNum
FROM [Site] as s INNER JOIN RowNumbers as r ON s.SiteId = r.Row
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
Mat*_*lie 16
您可以直接更新CTE ...
WITH RowNumbers AS
(
select *,
RowNum = row_number() OVER ( order by SiteId )
from [Site]
)
UPDATE RowNumbers
SET [Sequence] = RowNum
Run Code Online (Sandbox Code Playgroud)
这与可更新视图的工作方式相同.我添加*以确保更新字段通过,然后直接更新.
| 归档时间: |
|
| 查看次数: |
3596 次 |
| 最近记录: |