2012-05-24 2 views
-1


내가 설명ID 필드 인 테이블 을 가지며이 값많은 records.should 커서를 사용하여 업데이 트합니까?

1  Descript1 
    2  Descript2 
    3  Descript3 
    ..  ...... 
    ..  ...... 
    1000 Descript1000 
함께 표 1000 레코드를 삽입한다고 가정 MS SQL 서버 (TSQL)의 업데이트에 문제가

은 내가

1 Description1 
2 Description2 
3  Description3 
...... 
...... 
1000  Description1000 

내가 커서를 사용해야 기록 아래 같은이 1000 레코드를 변경하는 방법? 내가이 쿼리를 작성하지만

while @Counter<=1000000 
     begin 
      update Person set Description='Descripton'+CONVERT(nvarchar(15),@Counter) where ID>=1 
    set @[email protected]+1 
     end 
+0

이 _much_ 빠른 행 단위보다 (예를 들어, while 루프, 커서 등). – Bridge

답변

2

없음 cursorupdate 단순한 필요한 작업을 나던 : 집합 기반 방식으로 쿼리를 실행

update Person 
set Description = "Description" + convert(varchar(10), ID) 
+0

답장을 많이 주셔서 감사합니다 [aF] (http://stackoverflow.com/users/187730/af) –

+1

@SalahSanjabian 작동하는 경우 대답을 수락해야합니다 : http://meta.stackexchange.com/questions/ 5234/how-does-accepting-an-answer-work –

+0

'convert (varchar' 길이가 아닌가요?) 추천하지 않습니다 .http : //sqlblog.com/blogs/aaron_bertrand/archive/2009/10/09/bad -habit-to-kick-declaring-varchar-without-length.aspx –

1
UPDATE Person 
SET  Discription = SPACE(Z.n)+ Z.Discription 
FROM ( SELECT ID, 
       Description , 
       ROW_NUMBER() OVER (ORDER BY ID)n 
     FROM Person 
    )Z 
+0

답장을 보내 주셔서 감사합니다. [mehdi lotfi] (http://stackoverflow.com/users/1407421/) 메디 - 롯 피) (mamnon agha mehdi) –

관련 문제