2016-10-03 5 views
1

임시 테이블 레코드를 업데이트하려고합니다. 그러나 기존의 Temp 테이블에는 고유 한 열이 없습니다. 따라서 ID 열을 추가하고 해당 ID 열을 기반으로 모든 레코드를 업데이트해야합니다.SQL - 기존 임시 테이블에 ID 열 추가

예를 들어, 임시 테이블에 고유 한 열 값이없는 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

ID 열을 추가하는 유일한 이유는 모든 행을 개별적으로 검토하고 업데이트 할 수 있다는 것입니다. 왜'update #temp set Name = 'Gold''를 사용하지 않을까요? –

답변

2

UPDATE을 수행 할 필요가 없습니다. ID C 럼은 작성 될 때 채워집니다. 당신이 필요로하는 것입니다 :

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 
관련 문제