개발ㅣ어플ㅣ회사/개발ㅣSQL
MS-SQL FK 삭제하기
험한 세상에서 홀로 살아가는 나그네
2010. 4. 28. 10:13
원문
http://decipherinfosys.wordpress.com/2008/02/20/disableenable-foreign-key-and-check-constraints-in-sql-server/
처음에는 윗글과 같이 FK기능을 불가능하게 했지만 Truncate Table 에서 오류를 내뿜었습니다.
해서 아예...FK를 잘 사용하지 않으로 다음과 같이 변경해보았습니다.
FK를 Disble 하는 Script
FK를 Drop 하는 Script
** 마지막으로 현재 시스템의 FK를 나열해준다.
SELECT (CASE WHEN OBJECTPROPERTY(CONSTID, 'CNSTISDISABLED') = 0 THEN 'ENABLED' ELSE 'DISABLED' END) AS STATUS,
OBJECT_NAME(CONSTID) AS CONSTRAINT_NAME,
OBJECT_NAME(FKEYID) AS TABLE_NAME,
COL_NAME(FKEYID, FKEY) AS COLUMN_NAME,
OBJECT_NAME(RKEYID) AS REFERENCED_TABLE_NAME,
COL_NAME(RKEYID, RKEY) AS REFERENCED_COLUMN_NAME
FROM SYSFOREIGNKEYS
ORDER BY TABLE_NAME, CONSTRAINT_NAME,REFERENCED_TABLE_NAME, KEYNO
http://decipherinfosys.wordpress.com/2008/02/20/disableenable-foreign-key-and-check-constraints-in-sql-server/
처음에는 윗글과 같이 FK기능을 불가능하게 했지만 Truncate Table 에서 오류를 내뿜었습니다.
해서 아예...FK를 잘 사용하지 않으로 다음과 같이 변경해보았습니다.
FK를 Disble 하는 Script
FK를 Drop 하는 Script
** 마지막으로 현재 시스템의 FK를 나열해준다.
SELECT (CASE WHEN OBJECTPROPERTY(CONSTID, 'CNSTISDISABLED') = 0 THEN 'ENABLED' ELSE 'DISABLED' END) AS STATUS,
OBJECT_NAME(CONSTID) AS CONSTRAINT_NAME,
OBJECT_NAME(FKEYID) AS TABLE_NAME,
COL_NAME(FKEYID, FKEY) AS COLUMN_NAME,
OBJECT_NAME(RKEYID) AS REFERENCED_TABLE_NAME,
COL_NAME(RKEYID, RKEY) AS REFERENCED_COLUMN_NAME
FROM SYSFOREIGNKEYS
ORDER BY TABLE_NAME, CONSTRAINT_NAME,REFERENCED_TABLE_NAME, KEYNO