2012-06-20 2 views
4

SQL Server 2008에서 테이블을 행 번호와 동일하게 변경 한 후에 추가 된 열의 값을 어떻게 설정할 수 있습니까? 즉, 열의 값을 no로 지정하려고합니다. 행의. 또한이 필드에 NULL 값을 허용하려고합니다. 따라서 자동 증가와 같지만 자동 증가와 함께 ID 또는 기본 키 열을 사용하지 않는 이유는 null 값을 허용합니다. 어떻게 행을 설정할 수 있습니까? 어떤 도움을 주시면 감사하겠습니다. 직접 ROW_NUMBER를 사용하여 열을 업데이트하려고하면() 당신이 얻을 것이다행 값을 행 번호와 동일하게 설정하는 방법은 무엇입니까?

+0

autoincrement는 행 번호에 값을 설정하지 않습니다. 50 개의 항목을 삽입 한 다음 삭제하면 다음 항목을 삽입하면 테이블의 유일한 행인 경우에도 50 개의 값이 삽입되고 행 번호는 하나가 되라. – dasblinkenlight

+0

네, 맞습니다. 그래서 어떻게 행 번호에 열 값을 설정할 수 있습니까? – user13

답변

10

...

윈도우 된 기능 만 BY 절 SELECT 또는 ORDER에 나타날 수 있습니다.

는 ... 그래서 대신 INNER는 ... 자신에게 무엇을 이것에 대해

UPDATE 
    [test123] 
SET 
    [row_number] = [x].[rn] 
FROM 
    [test123] 
INNER JOIN 
    (
     SELECT 
      [test_id], 
      ROW_NUMBER() OVER (ORDER BY [test_id]) AS rn 
     FROM 
      [test123] 
    ) AS x 
ON 
    [test123].[test_id] = [x].[test_id] 
1

을 테이블 가입 : 그것은 행 번호에 원하는 열의 값을 업데이트합니다.

select 'Update myTable set row_No = ' + 
CAST(ROW_NUMBER() over (order by ID) as varchar) + ' Where ID = ' + 
cast(ID as varchar) from myTable 

--The 결과는 당신이 행 번호에 원하는 열의 값을 업데이트합니다 실행 업데이트 문을 생성합니다.

관련 문제