sp_foreignkeys(Transact-SQL)

적용 대상:SQL Server

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

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에서 소유자 이름이 포함됩니다.

[ @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 제품은 테이블(카탈로그)에 대해 세 부분으로 구성된 명명을 지원합니다.스키마.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 외래 키 식별자입니다. 데이터 원본에 적용되지 않는 경우 NULL입니다. SQL Server는 FOREIGN KEY 제약 조건 이름을 반환합니다.
PK_NAME sysname 기본 키 식별자입니다. 데이터 원본에 적용되지 않는 경우 NULL입니다. SQL Server는 PRIMARY KEY 제약 조건 이름을 반환합니다.
지연 가능성 smallint 제약 조건 검사를 지연할 수 있는지 여부를 나타냅니다.

결과 집합에서 FK_NAME 및 PK_NAME 열은 항상 NULL을 반환합니다.

설명

sp_foreignkeys table_server 해당하는 OLE DB 공급자의 IDBSchemaRowset 인터페이스의 FOREIGN_KEYS 행 집합을 쿼리합니다. 반환된 행을 제한하기 위해 table_name, table_schema, table_catalog 매개 변수가 이 인터페이스에 전달됩니다.

사용 권한

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

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

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

참고 항목

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)