2016-10-03 4 views
1

Я хочу обновить записи в таблице temp. Но моя существующая таблица Temp не имеет уникального столбца. Поэтому мне нужно добавить столбец Identity и обновить все записи на основе этого столбца Identity.SQL - добавить столбец идентификатора в существующую таблицу Temp

Например, если моя временная таблица имеет 1000 записей без каких-либо уникальных значений столбца. Мне нужно указать все эти 1000 записей и обновить значения.

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

Я могу изменить параметр таблицы, но в моем случае записи уже вставлены в мою временную таблицу. Поэтому мне нужно сделать это, добавив столбец Identity.

+0

Возможный дубликат [Добавить столбец в существующую таблицу и однозначно пронумеровать их] (http://stackoverflow.com/questions/108211/add-a-column-to-existing-table -and-unique-number-them) –

+0

Итак, единственная причина для добавления столбца идентификации - значит, вы можете пройти и обновить каждую строку отдельно? Почему бы просто не использовать 'update #temp set Name = 'Gold''? –

ответ

2

Нет необходимости делать UPDATE. Столбец идентификатора будет заполнен, когда он будет создан. Все, что вам нужно:

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

Id поле будет заполняться, и он будет содержать значения 1, 2, ..., 1000.

0

Вам не нужны циклы. Смотрите этот упрощенный пример:

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

--Add identity column 
ALTER TABLE #temp ADD ID int IDENTITY 
Смежные вопросы