【问题标题】:Add a column ID with a unique value for each row为每一行添加一个具有唯一值的列 ID
【发布时间】:2015-09-03 20:58:40
【问题描述】:

我有一个包含现有数据的现有表,我想添加具有自动增量功能的新列(名为 ID),并且我想为每一行添加一个唯一值。

除了获取所有数据并对每一行进行更新以设置此值之外,还有其他方法吗?

【问题讨论】:

标签: sql sql-server


【解决方案1】:

如果您需要SELECT:

SELECT *, ROW_NUMBER() OVER(ORDER BY ...A ORDER VALUE) as id
FROM yourTable

如果你需要它在你的桌子上:

ALTER TABLE yourTable ADD id int identity(1,1)

这是ALTER TABLE的输出演示:

CREATE TABLE #temp(name nvarchar(50))

INSERT INTO #temp(name) VALUES(N'Kai'),(N'Bernd'),(N'Flo'),(N'Pete')

SELECT * FROM #temp

-- This is what you need to do
ALTER TABLE #temp 
ADD id int identity(1,1) -- This will add and fill the new column

SELECT * FROM #temp

DROP TABLE #temp

【讨论】:

  • 通过添加列ID,它不会为每一行设置一个值,不是吗?每个值都将为 NULL。
  • @SeyoS - 如果列定义为identity(1,1)则不是
  • 嗨,我添加了一个演示来向您展示输出。插入的值不为空。 @Tanner 不,如果您想对它进行分组并按组编号,则按分区划分。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-30
  • 1970-01-01
  • 1970-01-01
  • 2019-11-14
相关资源
最近更新 更多