sys.foreign_key_columns
시스템 테이블을 살펴보십시오. 저는 여기에 테이블 주어진 의지, 주위에 누워 있었다 예를 들어이야, 열이 다른 테이블에 맞도록 제작되어있어 그것의 어떤을 설명 :이
DECLARE @tableName VARCHAR(255)
SET @tableName = 'YourTableName'
SELECT OBJECT_NAME(fkc.constraint_object_id) AS 'FKName', OBJECT_NAME(fkc.[referenced_object_id]) AS 'FKTable', c2.[name] AS 'FKTableColumn', @tableName AS 'Table', c1.[name] AS 'TableColumn'
FROM sys.foreign_key_columns as fkc
JOIN sys.columns AS c1 ON c1.[object_id] = fkc.[parent_object_id] AND c1.[column_id] = fkc.[parent_column_id]
JOIN sys.columns AS c2 ON c2.[object_id] = fkc.[referenced_object_id] AND c2.[column_id] = fkc.[referenced_column_id]
WHERE fkc.[parent_object_id] = OBJECT_ID(@tableName)
ORDER BY OBJECT_NAME(fkc.constraint_object_id)
, 또는 어떤 변화가-, 당신은 외국을 찾을 수 키, 드롭, 물건, 그리고 외래 키를 다시 만듭니다.
SQL2005 및 SQL2008에서 작동하는 것으로 알고 있습니다. SQL2000/MSDE에서 작동하는지 정말로 모르겠습니다.
매번 전체 상태가 처음부터 생성되는 통합 테스트에 별도의 DB를 사용하지 않는 이유는 무엇입니까? – dbemerlin
데이터베이스가 크지 만 (많은 종속 개체가있는 수백 개의 테이블). 그런 식으로 진행되면 모든 통합 테스트는 시작 시간과 실제 테스트없이 약 45 초 x 걸립니다. 또한 일부 테이블에는 데이터가 들어 있습니다. (사용자 정의 데이터가없는 총 데이터베이스 덤프는 약 35MB입니다). 통합 서버를 사용하여 매번 체크인 할 때마다 실행하려는 _many_ 통합 테스트가 있습니다. – Robert
각 통합 상태에서 DB의 초기 상태가 동일해야합니까? 아니면 시작 페널티를 한 번 지불하고 상태에 변경이 발생했을 때마다 모든 테스트를 취소 할 수 있습니까? – Mikeb