[MSSQL] 테이블의 기본 값이 뭘까?
2011. 7. 12. 20:21ㆍCoders
테이블의 기본값은, SP_HELPCONSTRAINT 프로시저를 사용하면 알 수 있습니다. 하지만, 이 경우, Object Name, 즉, 테이블명도 같이 보여주기 때문에, 코딩으로 작성하기에 좀 애매한 경우 입니다.
그냥 해 봤어요. 이런 건 좀 적어둬야 할 듯.
이용한 시스템 테이블은 다음과 같습니다.
sysconstraints
syscolumns
syscomments
예제는 다음과 같고요. 문자열 함수를 이용하여 괄호 등을 제거해서 뭔가 써 먹으면 좋겠죠.
이와 같이 조회하면, 기본 값은 붙어 있는지, 또 어떤 값을 기본 값으로 줬는지, 그리고 해당 Constraint 이름까지 얻어올 수 있습니다만, 제대로 하려면, 기본 값을 줄 때에 테이블 생성하면서 정확한 명칭을 부여하여 누가 봐도 알 수 있도록 관리하는 것이 좋겠죠.
그냥 해 봤어요. 이런 건 좀 적어둬야 할 듯.
이용한 시스템 테이블은 다음과 같습니다.
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 |