다음을 통해 공유


sp_pkeys(Transact-SQL)

적용 대상: Microsoft Fabric의 SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System(PDW) 웨어하우스

현재 환경의 단일 테이블에 대한 기본 키 정보를 반환합니다.

Transact-SQL 구문 표기 규칙

구문

SQL Server, Azure SQL Database, Azure Synapse Analytics, PDW(Analytics Platform System)에 대한 구문입니다.

sp_pkeys
    [ @table_name = ] N'table_name'
    [ , [ @table_owner = ] N'table_owner' ]
    [ , [ @table_qualifier = ] N'table_qualifier' ]
[ ; ]

인수

[ @table_name = ] N'table_name'

정보를 반환할 테이블을 지정합니다. @table_name 기본값이 없는 sysname입니다. 와일드카드 패턴 일치는 지원되지 않습니다.

[ @table_owner = ] N'table_owner'

지정한 테이블의 테이블 소유자를 지정합니다. @table_owner sysname이며 기본값은 .입니다NULL. 와일드카드 패턴 일치는 지원되지 않습니다. @table_owner 지정되지 않은 경우 기본 DBMS(데이터베이스 관리 시스템)의 기본 테이블 표시 유형 규칙이 적용됩니다.

SQL Server에서 현재 사용자가 지정된 이름의 테이블을 소유하는 경우 해당 테이블의 열이 반환됩니다. @table_owner 지정되지 않았고 현재 사용자가 지정된 @table_name 있는 테이블을 소유하지 않는 경우 이 절차에서는 데이터베이스 소유자가 소유한 지정된 @table_name 있는 테이블을 찾습니다. 테이블이 있을 경우 해당 테이블의 열이 반환됩니다.

[ @table_qualifier = ] N'table_qualifier'

테이블 한정자입니다. @table_qualifier sysname이며 기본값은 .입니다NULL. 다양한 DBMS 제품은 테이블(<qualifier>.<owner>.<name>)에 대해 세 부분으로 구성된 명명을 지원합니다. SQL Server에서 이 열은 데이터베이스 이름을 나타냅니다. 일부 제품에서는 테이블의 데이터베이스 환경 서버 이름을 나타냅니다.

반환 코드 값

없음

결과 집합

열 이름 데이터 형식 설명
TABLE_QUALIFIER sysname 테이블 한정자의 이름입니다. 이 필드는 다음과 같습니다 NULL.
TABLE_OWNER sysname 테이블 소유자의 이름입니다. 이 필드는 항상 값을 반환합니다.
TABLE_NAME sysname 테이블 이름입니다. SQL Server에서 이 열은 sysobjects 테이블에 나열된 테이블 이름을 나타냅니다. 이 필드는 항상 값을 반환합니다.
COLUMN_NAME sysname 반환된 각 열에 대한 열의 TABLE_NAME 이름입니다. SQL Server에서 이 열은 테이블에 나열된 sys.columns 열 이름을 나타냅니다. 이 필드는 항상 값을 반환합니다.
KEY_SEQ smallint 여러 열 기본 키에 있는 열의 시퀀스 번호입니다.
PK_NAME sysname 기본 키 식별자입니다. 데이터 원본에 적용되지 않는 경우 반환 NULL 합니다.

설명

sp_pkeys 는 제약 조건으로 명시적으로 정의된 PRIMARY KEY 열에 대한 정보를 반환합니다. 모든 시스템이 명시적으로 명명된 기본 키를 지원하는 것은 아니므로 게이트웨이 구현자는 기본 키를 구성하는 것을 결정합니다. 기본 키라는 용어는 테이블에 대한 논리적 기본 키를 나타냅니다. 논리적 기본 키로 나열된 모든 키에는 고유한 인덱스가 정의되어 있어야 합니다. 이 고유 인덱스도 .에 반환됩니다 sp_statistics.

sp_pkeys 저장 프로시저는 ODBC와 동일합니다SQLPrimaryKeys. 결과는 , TABLE_OWNER, TABLE_NAMEKEY_SEQ.로 TABLE_QUALIFIER정렬됩니다.

사용 권한

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

예제

이 문서의 Transact-SQL 코드 샘플은 AdventureWorks2022 또는 AdventureWorksDW2022 샘플 데이터베이스를 사용하며, 이는 Microsoft SQL Server 예시 및 커뮤니티 프로젝트(Microsoft SQL Server Samples and Community Projects) 홈 페이지에서 다운로드할 수 있습니다.

다음 예제에서는 데이터베이스의 테이블에 대한 HumanResources.Department 기본 키를 검색합니다 AdventureWorks2022 .

USE AdventureWorks2022;
GO

EXEC sp_pkeys @table_name = N'Department',
    @table_owner = N'HumanResources';

예: Azure Synapse Analytics 및 분석 플랫폼 시스템(PDW)

다음 예제에서는 데이터베이스의 테이블에 대한 DimAccount 기본 키를 검색합니다 AdventureWorksPDW2012 . 테이블에 기본 키가 없음을 나타내는 0개의 행을 반환합니다.

-- Uses AdventureWorksPDW

EXEC sp_pkeys @table_name = N'DimAccount';