2010-11-16 83 views

回答

4

這裏有一個查詢要做到這一點使用information_schema,改編自this blog post

SELECT FK_Table = FK.TABLE_NAME 
,  FK_Column = CU.COLUMN_NAME 
,  PK_Table = PK.TABLE_NAME 
,  PK_Column = PT.COLUMN_NAME 
,  Constraint_Name = C.CONSTRAINT_NAME 
FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS C 
JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS FK 
ON  C.CONSTRAINT_NAME = FK.CONSTRAINT_NAME 
JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS PK 
ON  C.UNIQUE_CONSTRAINT_NAME = PK.CONSTRAINT_NAME 
JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE CU 
ON  C.CONSTRAINT_NAME = CU.CONSTRAINT_NAME 
JOIN (
     SELECT i1.TABLE_NAME, i2.COLUMN_NAME 
     FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS i1 
     JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE i2 
     ON  i1.CONSTRAINT_NAME = i2.CONSTRAINT_NAME 
     WHERE i1.CONSTRAINT_TYPE = 'PRIMARY KEY' 
     ) PT 
ON  PT.TABLE_NAME = PK.TABLE_NAME 
WHERE PK.TABLE_NAME = 'PrimaryKeyTable'