다음을 통해 공유


sp_foreignkeys(Transact-SQL)

연결된 서버의 테이블에서 기본 키를 참조하는 외래 키를 반환합니다.

항목 링크 아이콘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_serversysname이며 기본값은 없습니다.

[ @pktab_name = ] 'pktab_name'

기본 키가 있는 테이블의 이름입니다. pktab_namesysname이며 기본값은 NULL입니다.

[ @pktab_schema = ] 'pktab_schema'

기본 키가 있는 스키마의 이름입니다. pktab_schemasysname이며 기본값은 NULL입니다. SQL Server 2005 에서는 여기에 소유자 이름이 포함됩니다.

[ @pktab_catalog = ] 'pktab_catalog'

기본 키가 있는 카탈로그의 이름입니다. pktab_catalogsysname이며 기본값은 NULL입니다. SQL Server 에서는 여기에 데이터베이스 이름이 포함됩니다.

[ @fktab_name = ] 'fktab_name'

외래 키가 있는 테이블의 이름입니다. fktab_namesysname이며 기본값은 NULL입니다.

[ @fktab_schema = ] 'fktab_schema'

외래 키가 있는 스키마의 이름입니다. fktab_schemasysname이며 기본값은 NULL입니다.

[ @fktab_catalog = ] 'fktab_catalog'

외래 키가 있는 카탈로그의 이름입니다. fktab_catalogsysname이며 기본값은 NULL입니다.

반환 코드 값

없음

결과 집합

결과 집합에 표시한 것과 같이 다양한 DBMS 제품에서 (catalog**.schema.**table) 형식의 3부분으로 구성된 테이블 이름을 지원합니다.

열 이름 데이터 형식 설명

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을 반환합니다.

0=CASCADE. 외래 키가 변경됩니다.

1=NO ACTION. 외래 키가 있을 경우 변경됩니다.

2=SET_NULL. 외래 키를 NULL로 설정합니다.

DELETE_RULE

smallint

SQL 작업이 삭제일 때 외래 키에 적용되는 작업입니다. SQL Server 에서는 다음과 같은 열에 대해 0 또는 1을 반환합니다.

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_foreignkeystable_server에 해당되는 OLE DB 공급자의 IDBSchemaRowset 인터페이스의 FOREIGN_KEYS 행 집합을 쿼리합니다. table_name, table_schema, table_catalogcolumn 매개 변수는 이 인터페이스에 전달되어 반환되는 행을 제한합니다.

사용 권한

스키마에 대한 SELECT 권한이 필요합니다.

다음 예에서는 연결된 서버 Seattle1AdventureWorks 데이터베이스에 있는 Department 테이블에 대한 외래 키 정보를 반환합니다.

EXEC sp_foreignkeys @table_server = N'Seattle1', 
   @pktab_name = N'Department', 
   @pktab_catalog = N'AdventureWorks'

참고 항목

참조

sp_catalogs(Transact-SQL)
sp_column_privileges(Transact-SQL)
sp_indexes(Transact-SQL)
sp_linkedservers(Transact-SQL)
sp_primarykeys(Transact-SQL)
sp_tables_ex(Transact-SQL)
sp_table_privileges(Transact-SQL)
시스템 저장 프로시저(Transact-SQL)

관련 자료

사용자와 스키마 분리

도움말 및 정보

SQL Server 2005 지원 받기