SQL-빠른 팁 #8 - 외래 키 제약 조건 찾기
SQL Server 팁과 요령
이것은 제가 1년 동안 축적한 일련의 빠른 팁과 요령 중 일부이며 다른 사람들에게 유용할 수 있다고 생각합니다.
비슷한 짧은 팁과 요령이 있으면 의견을 남겨주세요.
모든 외래 키 제약 조건
잘 설계된 데이터베이스는 데이터 무결성을 보장하기 위해 외래 키 관계를 사용하여 테이블을 서로 연결합니다. 그러나 데이터베이스에 수백 또는 수천 개의 테이블이 있는 경우 수정해야 할 특정 테이블과 관련된 모든 테이블을 찾는 것이 어려울 수 있습니다.
아래 쿼리는 특정 열 이름을 가진 열 사이의 모든 외래 키 제약 조건을 찾습니다.
DECLARE @colname VARCHAR(200) = 'customer'
SELECT fk_tab.name as [table],
pk_columns.name as colname,
pk_tab.name as [fk_table],
fk_columns.name as fk_colname
FROM sys.foreign_keys fk
JOIN sys.tables fk_tab on fk_tab.object_id = fk.parent_object_id
JOIN sys.tables pk_tab on pk_tab.object_id = fk.referenced_object_id
JOIN sys.foreign_key_columns fk_cols on fk_cols.constraint_object_id = fk.object_id
JOIN sys.columns fk_columns ON fk_columns.object_id = fk_cols.referenced_object_id
AND fk_columns.column_id = fk_cols.referenced_column_id
JOIN sys.columns pk_columns ON pk_columns.object_id = fk_cols.parent_object_id
AND pk_columns.column_id = fk_cols.parent_column_id
WHERE fk_columns.name LIKE '%'+ @colname +'%' OR pk_columns.name LIKE '%'+ @colname +'%'
ORDER BY pk_tab.name
아래Northwind 예에서 CustomerCustomerDemo 테이블의 CustomerTypeID 열에 CustomerDemographics 테이블의 기본 키 열 CustomerTypeID에 대한 외래 키 관계가 있음을 알 수 있습니다.
Reference
이 문제에 관하여(SQL-빠른 팁 #8 - 외래 키 제약 조건 찾기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/coderallan/sql-quick-tip-8-finding-foreign-key-constraints-k8b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)