Sql 为每行添加具有唯一值的列ID

Sql 为每行添加具有唯一值的列ID,sql,sql-server,Sql,Sql Server,我有一个包含现有数据的现有表,我想用自动增量添加新列(名为ID),我想为每一行添加一个唯一的值 除了获取所有数据并对每行进行更新以设置此值之外,还有其他方法吗 如果在中需要它,请选择: SELECT *, ROW_NUMBER() OVER(ORDER BY ...A ORDER VALUE) as id FROM yourTable 如果您需要将其放在您的表格中: ALTER TABLE yourTable ADD id int identity(1,1) 下面是一个演示ALTER表的输出

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


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

如果在
中需要它,请选择

SELECT *, ROW_NUMBER() OVER(ORDER BY ...A ORDER VALUE) as id
FROM yourTable
如果您需要将其放在您的表格中:

ALTER TABLE yourTable ADD id int identity(1,1)
下面是一个演示
ALTER表的输出:

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

如果在
中需要它,请选择

SELECT *, ROW_NUMBER() OVER(ORDER BY ...A ORDER VALUE) as id
FROM yourTable
如果您需要将其放在您的表格中:

ALTER TABLE yourTable ADD id int identity(1,1)
下面是一个演示
ALTER表的输出:

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,它不会为每一行设置一个值,不是吗?每个值都将为空。@SeyoS-如果列定义为
identity(1,1)
Hi,我添加了一个演示来显示输出。将插入不为null的值@Tanner和no,partitionby是指如果您想对它进行分组并对每个组进行编号。通过添加列ID,它不会为每一行设置一个值,不是吗?每个值都将为空。@SeyoS-如果列定义为
identity(1,1)
Hi,我添加了一个演示来显示输出。将插入不为null的值@Tanner和否,如果要对其进行分组并按组对其进行编号,则分区依据为。此主题重复[此主题重复[