sp_foreignkeys(Transact-SQL)
연결된 서버의 테이블에서 기본 키를 참조하는 외래 키를 반환합니다.
구문
sp_foreignkeys [ @table_server = ] 'table_server'
[ , [ @pktab_name = ] 'pktab_name' ]
[ , [ @pktab_schema = ] 'pktab_schema' ]
[ , [ @pktab_catalog = ] 'pktab_catalog' ]
[ , [ @fktab_name = ] 'fktab_name' ]
[ , [ @fktab_schema = ] 'fktab_schema' ]
[ , [ @fktab_catalog = ] 'fktab_catalog' ]
인수
[ @table_server = ] 'table_server'
테이블 정보가 반환될 연결된 서버의 이름입니다. table_server는 sysname이며 기본값은 없습니다.[ @pktab_name = ] 'pktab_name'
기본 키가 있는 테이블의 이름입니다. pktab_name은 sysname이며 기본값은 NULL입니다.[ @pktab_schema = ] 'pktab_schema'
기본 키가 있는 스키마의 이름입니다. pktab_schema은 sysname이며 기본값은 NULL입니다. SQL Server 2008에서는 여기에 소유자 이름이 포함됩니다.[ @pktab_catalog = ] 'pktab_catalog'
기본 키가 있는 카탈로그의 이름입니다. pktab_catalog는 sysname이며 기본값은 NULL입니다. SQL Server에서는 여기에 데이터베이스 이름이 포함됩니다.[ @fktab_name = ] 'fktab_name'
외래 키가 있는 테이블의 이름입니다. fktab_name은 sysname이며 기본값은 NULL입니다.[ @fktab_schema = ] 'fktab_schema'
외래 키가 있는 스키마의 이름입니다. fktab_schema는 sysname이며 기본값은 NULL입니다.[ @fktab_catalog = ] 'fktab_catalog'
외래 키가 있는 카탈로그의 이름입니다. fktab_catalog는 sysname이며 기본값은 NULL입니다.
반환 코드 값
없음
결과 집합
결과 집합에 표시한 것과 같이 다양한 DBMS 제품에서 (catalog**.schema.**table) 형식의 세 부분으로 구성된 테이블 이름을 지원합니다.
열 이름 |
데이터 형식 |
설명 |
---|---|---|
PKTABLE_CAT |
sysname |
기본 키가 있는 테이블의 카탈로그입니다. |
PKTABLE_SCHEM |
sysname |
기본 키가 있는 테이블의 스키마입니다. |
PKTABLE_NAME |
sysname |
기본 키가 있는 테이블의 이름입니다. 이 필드는 항상 값을 반환합니다. |
PKCOLUMN_NAME |
sysname |
반환되는 TABLE_NAME의 각 열에 대한 기본 키 열의 이름입니다. 이 필드는 항상 값을 반환합니다. |
FKTABLE_CAT |
sysname |
외래 키가 있는 테이블의 카탈로그입니다. |
FKTABLE_SCHEM |
sysname |
외래 키가 있는 테이블의 스키마입니다. |
FKTABLE_NAME |
sysname |
외래 키가 있는 테이블의 이름입니다. 이 필드는 항상 값을 반환합니다. |
FKCOLUMN_NAME |
sysname |
반환되는 TABLE_NAME의 각 열에 대한 외래 키 열의 이름입니다. 이 필드는 항상 값을 반환합니다. |
KEY_SEQ |
smallint |
여러 열로 된 기본 키에 있는 열의 시퀀스 번호입니다. 이 필드는 항상 값을 반환합니다. |
UPDATE_RULE |
smallint |
SQL 작업이 업데이트일 때 외래 키에 적용되는 동작입니다. SQL Server에서는 다음과 같은 열에 대해 0, 1 또는 2를 반환합니다. 0=CASCADE. 외래 키로 변경됩니다. 1=NO ACTION. 외래 키가 있을 경우 변경됩니다. 2=SET_NULL. 외래 키를 NULL로 설정합니다. |
DELETE_RULE |
smallint |
SQL 작업이 삭제일 때 외래 키에 적용되는 동작입니다. SQL Server에서는 다음과 같은 열에 대해 0, 1 또는 2를 반환합니다. 0=CASCADE. 외래 키로 변경됩니다. 1=NO ACTION. 외래 키가 있을 경우 변경됩니다. 2=SET_NULL. 외래 키를 NULL로 설정합니다. |
FK_NAME |
sysname |
외래 키 ID입니다. 데이터 원본에 적용할 수 없는 경우 NULL입니다. SQL Server는 FOREIGN KEY 제약 조건 이름을 반환합니다. |
PK_NAME |
sysname |
기본 키 ID입니다. 데이터 원본에 적용할 수 없는 경우 NULL입니다. SQL Server는 PRIMARY KEY 제약 조건 이름을 반환합니다. |
DEFERRABILITY |
smallint |
제약 조건 검사를 연기할 수 있는지 여부를 나타냅니다. |
결과 집합에서 FK_NAME 및 PK_NAME 열은 항상 NULL을 반환합니다.
주의
sp_foreignkeys는 table_server에 해당되는 OLE DB 공급자의 IDBSchemaRowset 인터페이스의 FOREIGN_KEYS 행 집합을 쿼리합니다. 반환되는 행 수를 제한하기 위해 table_name, table_schema, table_catalog 및 column 매개 변수가 이 인터페이스로 전달됩니다.
사용 권한
스키마에 대한 SELECT 권한이 필요합니다.
예
다음 예에서는 연결된 서버 Seattle1의 AdventureWorks 데이터베이스에 있는 Department 테이블에 대한 외래 키 정보를 반환합니다.
EXEC sp_foreignkeys @table_server = N'Seattle1',
@pktab_name = N'Department',
@pktab_catalog = N'AdventureWorks'