Chu*_*ris 1 sql t-sql sql-server
如何将OrderNumber列中的所有值从1设置为n(当它们按主键排序时),其中n是表中的条目数?
编辑:
假设我们有3个ID为4,7和15的条目...我想设置它们的OrderValues 1,2和3.
我正在使用SQL Server 2008.
;WITH x AS (SELECT ID, OrderValues,
rn = ROW_NUMBER() OVER (ORDER BY ID)
FROM dbo.tablename
)
UPDATE x SET OrderValues = rn;
Run Code Online (Sandbox Code Playgroud)
但是,当你ROW_NUMBER()在查询时使用函数导出这些信息时,为什么要这样做呢?存储值意味着在插入/更新/删除表中的单个行时,它们可以保证过时并且不同步.因此,除非您计划在每次DML操作(例如使用触发器)之后运行此更新(这对我来说不合逻辑),否则在运行查询时将获取这些row_number值与将它们存储在表.
| 归档时间: |
|
| 查看次数: |
282 次 |
| 最近记录: |