sp_pkeys(Transact-SQL)
현재 환경의 단일 테이블에 대한 기본 키 정보를 반환합니다.
구문
sp_pkeys [ @table_name = ] 'name'
[ , [ @table_owner = ] 'owner' ]
[ , [ @table_qualifier = ] 'qualifier' ]
인수
[ @table_name = ] 'name'
정보를 반환할 테이블입니다. name은 sysname이며 기본값은 없습니다. 와일드카드 패턴 일치는 지원되지 않습니다.[ @table_owner = ] 'owner'
지정된 테이블의 소유자를 지정합니다. owner는 sysname이며 기본값은 NULL입니다. 와일드카드 패턴 일치는 지원되지 않습니다. owner를 지정하지 않은 경우 기본 DBMS의 기본 테이블 표시 규칙이 적용됩니다.SQL Server에서는 현재 사용자가 지정된 이름의 테이블을 소유한 경우 해당 테이블의 열이 반환됩니다. owner가 지정되지 않았으며 현재 사용자가 지정된 name의 테이블을 소유하고 있지 않은 경우 이 프로시저는 데이터베이스 소유자가 소유한 지정된 name의 테이블을 찾습니다. 테이블이 있으면 해당 테이블의 열이 반환됩니다.
[ @table_qualifier = ] '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_QUALIFIER, TABLE_OWNER, TABLE_NAME 및 KEY_SEQ 순으로 정렬됩니다.
사용 권한
스키마에 대한 SELECT 권한이 필요합니다.
예
다음 예에서는 AdventureWorks 데이터베이스에 있는 HumanResources.Department 테이블의 기본 키를 검색합니다.
USE AdventureWorks;
GO
EXEC sp_pkeys @table_name = N'Department'
,@table_owner = N'HumanResources';