sp_fkeys(Transact-SQL)
적용 대상: Microsoft Fabric의 SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System(PDW) 웨어하우스
현재 환경에 대한 논리적 외래 키 정보를 반환합니다. 이 절차에서는 사용하지 않도록 설정된 외래 키를 비롯한 외래 키 관계를 보여줍니다.
구문
sp_fkeys
[ [ @pktable_name = ] N'pktable_name' ]
[ , [ @pktable_owner = ] N'pktable_owner' ]
[ , [ @pktable_qualifier = ] N'pktable_qualifier' ]
[ , [ @fktable_name = ] N'fktable_name' ]
[ , [ @fktable_owner = ] N'fktable_owner' ]
[ , [ @fktable_qualifier = ] N'fktable_qualifier' ]
[ ; ]
인수
[ @pktable_name = ] N'pktable_name'
카탈로그 정보를 반환하는 데 사용되는 기본 키가 있는 테이블의 이름입니다. @pktable_name sysname이며 기본값은 .입니다NULL
. 와일드카드 패턴 일치는 지원되지 않습니다. 이 매개 변수 또는 @fktable_name 매개 변수 또는 둘 다를 제공해야 합니다.
[ @pktable_owner = ] N'pktable_owner'
카탈로그 정보를 반환하는 데 사용되는 테이블 소유자의 이름(기본 키 포함)입니다. @pktable_owner sysname이며 기본값은 .입니다NULL
. 와일드카드 패턴 일치는 지원되지 않습니다. @pktable_owner 지정되지 않은 경우 기본 DBMS(데이터베이스 관리 시스템)의 기본 테이블 표시 유형 규칙이 적용됩니다.
SQL Server에서 현재 사용자가 지정된 이름의 테이블을 소유하는 경우 해당 테이블의 열이 반환됩니다. @pktable_owner 지정되지 않고 현재 사용자가 지정된 @pktable_name 있는 테이블을 소유하지 않는 경우 프로시저는 데이터베이스 소유자가 소유한 지정된 @pktable_name 있는 테이블을 찾습니다. 테이블 열이 있으면 해당 테이블의 열이 반환됩니다.
[ @pktable_qualifier = ] N'pktable_qualifier'
테이블의 이름(기본 키 포함) 한정자입니다. @pktable_qualifier sysname이며 기본값은 .입니다NULL
. 다양한 DBMS 제품은 테이블(qualifier.owner.name)에 대해 세 부분으로 구성된 명명을 지원합니다. SQL Server에서 한정자는 데이터베이스 이름을 나타냅니다. 일부 제품에서는 테이블 데이터베이스 환경의 서버 이름을 나타냅니다.
[ @fktable_name = ] N'fktable_name'
카탈로그 정보를 반환하는 데 사용되는 테이블의 이름(외래 키 포함)입니다. @fktable_name sysname이며 기본값은 .입니다NULL
. 와일드카드 패턴 일치는 지원되지 않습니다. 이 매개 변수 또는 @pktable_name 매개 변수 또는 둘 다를 제공해야 합니다.
[ @fktable_owner = ] N'fktable_owner'
카탈로그 정보를 반환하는 데 사용되는 테이블 소유자의 이름(외래 키 포함)입니다. @fktable_owner sysname이며 기본값은 .입니다NULL
. 와일드카드 패턴 일치는 지원되지 않습니다. @fktable_owner 지정하지 않으면 기본 DBMS의 기본 테이블 표시 유형 규칙이 적용됩니다.
SQL Server에서 현재 사용자가 지정된 이름의 테이블을 소유하는 경우 해당 테이블의 열이 반환됩니다. @fktable_owner 지정되지 않았고 현재 사용자가 지정된 @fktable_name 있는 테이블을 소유하지 않는 경우 프로시저는 데이터베이스 소유자가 소유한 지정된 @fktable_name 있는 테이블을 찾습니다. 테이블 열이 있으면 해당 테이블의 열이 반환됩니다.
[ @fktable_qualifier = ] N'fktable_qualifier'
외래 키가 있는 테이블의 한정자 이름입니다. @fktable_qualifier sysname이며 기본값은 .입니다NULL
. SQL Server에서 한정자는 데이터베이스 이름을 나타냅니다. 일부 제품에서는 테이블 데이터베이스 환경의 서버 이름을 나타냅니다.
반환 코드 값
없음
결과 집합
열 이름 | 데이터 형식 | 설명 |
---|---|---|
PKTABLE_QUALIFIER |
sysname | 테이블의 이름(기본 키 포함) 한정자입니다. 이 필드는 다음과 같습니다 NULL . |
PKTABLE_OWNER |
sysname | 기본 키가 있는 테이블의 소유자 이름입니다. 이 필드는 항상 값을 반환합니다. |
PKTABLE_NAME |
sysname | 기본 키가 있는 테이블의 이름입니다. 이 필드는 항상 값을 반환합니다. |
PKCOLUMN_NAME |
sysname | 반환된 각 열에 대한 기본 키 열의 TABLE_NAME 이름입니다. 이 필드는 항상 값을 반환합니다. |
FKTABLE_QUALIFIER |
sysname | 외래 키가 있는 테이블의 한정자 이름입니다. 이 필드는 다음과 같습니다 NULL . |
FKTABLE_OWNER |
sysname | 외래 키가 있는 테이블 소유자의 이름입니다. 이 필드는 항상 값을 반환합니다. |
FKTABLE_NAME |
sysname | 외래 키가 있는 테이블의 이름입니다. 이 필드는 항상 값을 반환합니다. |
FKCOLUMN_NAME |
sysname | 반환된 각 열에 대한 외래 키 열의 TABLE_NAME 이름입니다. 이 필드는 항상 값을 반환합니다. |
KEY_SEQ |
smallint | 여러 열 기본 키에 있는 열의 시퀀스 번호입니다. 이 필드는 항상 값을 반환합니다. |
UPDATE_RULE |
smallint | SQL 작업이 업데이트일 때 외래 키에 적용되는 동작입니다. 가능한 값:0 = CASCADE 외래 키를 변경합니다.1 = NO ACTION 외래 키가 있으면 변경합니다.2 = SET_NULL 3 = 기본값 설정 |
DELETE_RULE |
smallint | SQL 작업이 삭제되면 외래 키에 적용된 작업입니다. 가능한 값:0 = CASCADE 외래 키를 변경합니다.1 = NO ACTION 외래 키가 있으면 변경합니다.2 = SET_NULL 3 = 기본값 설정 |
FK_NAME |
sysname | 외래 키 식별자입니다. 데이터 원본에 NULL 적용되지 않는 경우입니다. SQL Server는 제약 조건 FOREIGN KEY 이름을 반환합니다. |
PK_NAME |
sysname | 기본 키 식별자입니다. 데이터 원본에 NULL 적용되지 않는 경우입니다. SQL Server는 제약 조건 PRIMARY KEY 이름을 반환합니다. |
반환된 결과는 , FKTABLE_OWNER
, FKTABLE_NAME
및 KEY_SEQ
.로 FKTABLE_QUALIFIER
정렬됩니다.
설명
외화 키가 비활성화된 테이블을 포함하는 애플리케이션 코딩은 다음 방법으로 구현할 수 있습니다.
테이블을 사용하는 동안 제약 조건 검사(
ALTER TABLE NOCHECK
또는CREATE TABLE NOT FOR REPLICATION
)를 일시적으로 사용하지 않도록 설정한 다음 나중에 다시 사용하도록 설정합니다.트리거 또는 애플리케이션 코드를 사용하여 관계를 적용합니다.
기본 키 테이블 이름이 제공되고 외래 키 테이블 이름이면 NULL
sp_fkeys
지정된 테이블에 외래 키가 포함된 모든 테이블을 반환합니다. 외래 키 테이블 이름이 제공되고 기본 키 테이블 이름이면 NULL
sp_fkeys
외래 키 테이블의 외래 키에 대한 기본 키/외래 키 관계와 관련된 모든 테이블을 반환합니다.
sp_fkeys
저장 프로시저는 ODBC의 SQLForeignKeys와 동일합니다.
사용 권한
스키마에 SELECT
대한 권한이 필요합니다.
예제
다음 예제에서는 데이터베이스의 테이블에 AdventureWorks2022
대한 HumanResources.Department
외세 키 목록을 검색합니다.
USE AdventureWorks2022;
GO
EXEC sp_fkeys
@pktable_name = N'Department',
@pktable_owner = N'HumanResources';
예: Azure Synapse Analytics 및 분석 플랫폼 시스템(PDW)
다음 예제에서는 데이터베이스의 테이블에 AdventureWorksPDW2012
대한 DimDate
외세 키 목록을 검색합니다. Azure Synapse Analytics는 외세 키를 지원하지 않으므로 행이 반환되지 않습니다.
EXEC sp_fkeys @pktable_name = N'DimDate';