2012-06-22 6 views
2

내 C# 코드에서 SQL Server Table의 관계 (또는 외래 키)를 가져 오려고합니다. 어떻게해야합니까?테이블 관계 가져 오기

SELECT 
    FK = OBJECT_NAME(pt.constraint_object_id), 
    Referencing_col = pc.name, 
    Referenced_col = rc.name 
FROM sys.foreign_key_columns AS pt 
INNER JOIN sys.columns AS pc 
ON pt.parent_object_id = pc.[object_id] 
AND pt.parent_column_id = pc.column_id 
INNER JOIN sys.columns AS rc 
ON pt.referenced_column_id = rc.column_id 
AND pt.referenced_object_id = rc.[object_id] 
WHERE pt.parent_object_id = OBJECT_ID('dbo.YourTableName'); 

당신이 dbo.YourTableName을 참조하는 모든 외부 키를 얻고 싶은 경우에, 그것은 약간 다르다 :

SELECT 
    -- add these two columns: 
    [Schema] = OBJECT_SCHEMA_NAME(pt.parent_object_id), 
    [Table] = OBJECT_NAME(pt.parent_object_id), 
    FK = OBJECT_NAME(pt.constraint_object_id), 
    Referencing_col = pc.name, 
    Referenced_col = rc.name 
FROM sys.foreign_key_columns AS pt 
INNER JOIN sys.columns AS pc 
ON pt.parent_object_id = pc.[object_id] 
AND pt.parent_column_id = pc.column_id 
INNER JOIN sys.columns AS rc 
ON pt.referenced_column_id = rc.column_id 
AND pt.referenced_object_id = rc.[object_id] 
WHERE pt.referenced_object_id = OBJECT_ID('dbo.YourTableName'); 
---------^^^^^^^^^^ change this 

+1

는 [방법 - 투 - 수 - 더 - 테이블 A-외래 키가-의미 - 투] [1] [1]이 링크를 따라 458913/외래 키를 참조하는 방법 – KF2

답변

3

dbo.YourTableName 참조하는 모든 외부 키를 얻을 것이다 감사 이것을 저장 프로 시저에 넣고 OBJECT_ID 함수에 전달한 두 부분으로 된 이름을 매개 변수화 한 다음 C# 코드에서 저장 프로 시저를 호출 할 수 있습니다. http://stackoverflow.com/questions/ :

관련 문제