본문 바로가기

프로그램 경험/Database

[SqlServer] 행번호 업데이트

행번호 업데이트 - SqlServer


데이터를 입력하고 삭제하다 보면 순번열이 틀어지는 경우가 발생합니다.

그럴때 조회된 순서대로 번호를 다시 업데이트 하고 싶어서 안달이 납니다.

안달나실때 아래 예제를 돌려 보시면 쉽게 처리 방법을 알수 있습니다~

--임시 테이블을 생성
DECLARE @Temp TABLE 
(
 Field          VARCHAR(10)        --구분
 ,PlanYYMM      VARCHAR(6)         --계획월
 ,Seq            INT                --순서
);

--데이터 입력
INSERT INTO @Temp VALUES('정리','201401', 2);
INSERT INTO @Temp VALUES('정리','201402', 3);
INSERT INTO @Temp VALUES('정리','201403', 4);
INSERT INTO @Temp VALUES('정리','201404', 15);
INSERT INTO @Temp VALUES('정리','201405', 6);
INSERT INTO @Temp VALUES('정리','201406', 4);

--마구잡이로 입력된 Seq가 조회
SELECT 
*
FROM @Temp

--월별로 정렬하여 Seq를 1부터 순서대로 업데이트
UPDATE A
SET
    A.Seq = A.RowNum
FROM 
    (
        SELECT
            Seq
            , ROW_NUMBER() OVER (ORDER BY PlanYYMM) AS RowNum
        FROM @Temp
    ) AS A

--정렬된 데이터 조회
SELECT 
*
FROM @Temp