sp_foreignkeys(Transact-SQL)
적용 대상: SQL Server
연결된 서버의 테이블에서 기본 키를 참조하는 외신 키를 반환합니다.
구문
sp_foreignkeys
[ @table_server = ] N'table_server'
[ , [ @pktab_name = ] N'pktab_name' ]
[ , [ @pktab_schema = ] N'pktab_schema' ]
[ , [ @pktab_catalog = ] N'pktab_catalog' ]
[ , [ @fktab_name = ] N'fktab_name' ]
[ , [ @fktab_schema = ] N'fktab_schema' ]
[ , [ @fktab_catalog = ] N'fktab_catalog' ]
[ ; ]
인수
[ @table_server = ] N'table_server'
테이블 정보를 반환할 연결된 서버의 이름입니다. @table_server 기본값이 없는 sysname입니다.
[ @pktab_name = ] N'pktab_name'
기본 키가 있는 테이블의 이름입니다. @pktab_name sysname이며 기본값은 .입니다NULL
.
[ @pktab_schema = ] N'pktab_schema'
기본 키가 있는 스키마의 이름입니다. @pktab_schema sysname이며 기본값은 .입니다NULL
. SQL Server에서 이 매개 변수에는 소유자 이름이 포함됩니다.
[ @pktab_catalog = ] N'pktab_catalog'
기본 키가 있는 카탈로그의 이름입니다. @pktab_catalog sysname이며 기본값은 .입니다NULL
. SQL Server에서 이 매개 변수에는 데이터베이스 이름이 포함됩니다.
[ @fktab_name = ] N'fktab_name'
외래 키가 있는 테이블의 이름입니다. @fktab_name sysname이며 기본값은 .입니다NULL
.
[ @fktab_schema = ] N'fktab_schema'
외래 키가 있는 스키마의 이름입니다. @fktab_schema sysname이며 기본값은 .입니다NULL
.
[ @fktab_catalog = ] N'fktab_catalog'
외래 키가 있는 카탈로그의 이름입니다. @fktab_catalog 기본값NULL
인 sysname입니다.
반환 코드 값
없음
결과 집합
다양한 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 | 외래 키 식별자입니다. 데이터 원본에 NULL 적용되지 않는 경우입니다. SQL Server는 제약 조건 FOREIGN KEY 이름을 반환합니다. |
PK_NAME |
sysname | 기본 키 식별자입니다. 데이터 원본에 NULL 적용되지 않는 경우입니다. SQL Server는 제약 조건 PRIMARY KEY 이름을 반환합니다. |
DEFERRABILITY |
smallint | 제약 조건 검사를 지연할 수 있는지 여부를 나타냅니다. |
결과 집합 FK_NAME
에서 열과 PK_NAME
열은 항상 반환 NULL
됩니다.
설명
sp_foreignkeys
는 @table_server 해당하는 OLE DB 공급자 인터페이스의 FOREIGN_KEYS 행 집합 IDBSchemaRowset
을 쿼리합니다. 반환되는 행을 제한하기 위해 @table_name, @table_schema, @table_catalog 및 @column 매개 변수가 이 인터페이스에 전달됩니다.
사용 권한
스키마에 SELECT
대한 권한이 필요합니다.
예제
다음 예에서는 연결된 서버 Department
의 AdventureWorks2022
데이터베이스에 있는 Seattle1
테이블에 대한 외래 키 정보를 반환합니다.
EXEC sp_foreignkeys @table_server = N'Seattle1',
@pktab_name = N'Department',
@pktab_catalog = N'AdventureWorks2022';