나를 시험에 들게하지 마옵시고.
했으나 뜻과는 무관하게 오늘 여러가지 시험이 닥쳐들었다.
MSSQL 서버 2005에는 DB내의 전체 OBJECT를 관리하는 SYSOBJECTS 테이블에 IS_IDENTITY 라는 컬럼이 존재하는 것 같으나 구버젼인 2000에는 존재하지 않는다. 피똥싸는거다.
시스템 테이블을 아무리 뒤져봐도 IDENTITY와 관련된 정보를 포함한 컬럼은 존재하지 않는다.
정답은 의외로 간단한 온라인도움말(F1)에 있었으니,
SELECT NAME, IDENT_INCR(NAME),IDENT_SEED(NAME) AS IDENT_INCR , COUNT(NAME)
FROM SYSOBJECTS
WHERE IDENT_INCR(NAME) IS NOT NULL AND NAME LIKE ‘TB_%’
GROUP BY NAME
WITH ROLLUP
GO
IDENT_INCR([테이블이름], INDENT_SEED([테이블이름])
IDENT_SEED
ID 열이 있는 테이블이나 뷰에서 ID 열을 만드는 동안 지정된 시드 값(numeric(@@MAXPRECISION,0)으로 반환됨)을 반환하는 예제입니다
IDENT_INCR
ID 열이 있는 테이블이나 뷰에서 ID 열을 만드는 동안 지정된 증분 값(numeric(@@MAXPRECISION,0)으로 반환됨)을 반환합니다
요 두값이 0이 아니라면 IDENTITY가 존재한다는 얘기가 된다고 한다.
따라서 위의 쿼리의 정확성이 보장된다….는 말인것 같다.