개발ㅣ어플ㅣ회사/개발ㅣ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