SQL - 在现有临时表中追加标识列

时间:2016-10-03 11:18:46

标签: sql sql-server

我想更新临时表记录。但是我现有的Temp表没有任何唯一的列。所以我需要附加Identity列并根据该Identity列更新所有记录。

例如,如果我的临时表有1000条没有任何唯一列值的记录。我需要对所有这1000条记录进行编号并更新值。

while(@count < identity_value)
begin
update #temp
Name = 'Gold'
where identity = @count
@count = @count+1
End

我可以改变表选项,但在我的情况下,记录已经插入到我的临时表中。所以我需要通过添加Identity列来循环它。

2 个答案:

答案 0 :(得分:2)

无需UPDATE。标识列将在创建时填充。您所需要的只是:

ALTER TABLE #temp
ADD Id INT Identity(1, 1)
GO
将填充

Id字段,它将保留值1, 2, ..., 1000

答案 1 :(得分:0)

你不需要循环。请参阅此简化示例:

CREATE TABLE #temp
(
    Name varchar(10)
)
INSERT #temp VALUES ('A'),('B')

--Add identity column
ALTER TABLE #temp ADD ID int IDENTITY