[MSSQL] 테이블의 기본 값이 뭘까?

2011. 7. 12. 20:21Coders

테이블의 기본값은, SP_HELPCONSTRAINT 프로시저를 사용하면 알 수 있습니다. 하지만, 이 경우, Object Name, 즉, 테이블명도 같이 보여주기 때문에, 코딩으로 작성하기에 좀 애매한 경우 입니다.

그냥 해 봤어요. 이런 건 좀 적어둬야 할 듯.
이용한 시스템 테이블은 다음과 같습니다.
sysconstraints
syscolumns
syscomments

예제는 다음과 같고요. 문자열 함수를 이용하여 괄호 등을 제거해서 뭔가 써 먹으면 좋겠죠.
이와 같이 조회하면, 기본 값은 붙어 있는지, 또 어떤 값을 기본 값으로 줬는지, 그리고 해당 Constraint 이름까지 얻어올 수 있습니다만, 제대로 하려면, 기본 값을 줄 때에 테이블 생성하면서 정확한 명칭을 부여하여 누가 봐도 알 수 있도록 관리하는 것이 좋겠죠.
DECLARE @TABLE_NM NVARCHAR(50);

SET @TABLE_NM = 'SOME_TABLE';

SELECT OBJECT_NAME(CONSTID) AS CONST_NM,
       SC.NAME AS COL_NM,
       SCM.TEXT AS DEFAULT_VALUE
  FROM SYSCONSTRAINTS S INNER JOIN SYSCOLUMNS SC ON SC.ID = S.ID
                                                AND SC.COLID = S.COLID
                        INNER JOIN SYSCOMMENTS SCM ON SCM.ID = CONSTID
 WHERE S.ID = OBJECT_ID(@TABLE_NM)
   AND S.STATUS = 2069;

'Coders' 카테고리의 다른 글

[MSSQL] 테이블의 인덱스 얻기  (0) 2011.11.17
[MSSQL] INSERT/UPDATE/DELETE 트리거를 하나로  (0) 2011.05.31
[C#] 특정 문자열을 막는 코드  (0) 2011.03.17