안녕하세요 ~ 질문 하나만 드리겠습니다.
주로 index 라는 컬럼 두고 identity(1,1)로 해서 순번을 넣는데요 ..
혹시 해당 index 의 값이 누락이 되는 경우가 있는지 확인해보고 싶은데 어찌하면 좋을까요 ?
index 필드의 값이 정상적이라면
1 , 2, 3, 4, 5, .......9999 이렇게 될텐데..
누락된 게 있다면..
1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 13 .....9999
이렇게 5하고 7 사이 6이 빠찌고 또한 11 하고 13사이에 12가 빠져있는데..
이런 부분들 확인해보고 싶은데..
고수님들의 답변 부탁드리겠습니다.
Comment 4
-
pertime
2014.01.20 14:30
테이블을 제가 임의로 생성할 수 있는 권한은 없습니다.ㅠㅠ
-
맨즈밤
2014.01.20 15:07
임시테이블도요? 뭐 그렇지 않더라도, 인라인뷰안에 대충 테이블 큰거 하나 골라서 SELECT TOP 1000 ROW_NUMBER() ~~~ 함수 쓰면 되지않을까요
-
이렇게 하면 누락 시점을 알아낼 수는 있습니다.DECLARE @A TABLE (SEQ INT)INSERT @A VALUES (1), (2), (3), (5), (9)SELECT *FROM (SELECT NUM = ROW_NUMBER() OVER (ORDER BY SEQ), SEQ FROM @A) AWHERE NUM != SEQ
만약 중요하고 빈번한 비지니스 로직이라면
1~9999까지 몽땅 들어가있는 테이블을 하나 만드세요.
그리고 LEFT OUTER JOIN...