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 не задан, применяются правила видимости таблиц по умолчанию базовой СУБД.В SQL Server, если текущий пользователь является владельцем таблицы с указанным именем, возвращаются ее столбцы. Если аргумент owner не задан и текущий пользователь не является владельцем таблицы name, то процедура ищет таблицу с именем name, принадлежащую владельцу базы данных. Если такая таблица существует, возвращаются ее столбцы.
[ @table_qualifier = ] 'qualifier'
Квалификатор таблицы. Аргумент qualifier имеет тип sysname и значение по умолчанию NULL. Различные проекты СУБД поддерживают трехкомпонентные имена таблиц: (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 возвращает сведения о столбцах, явно указанных в ограничении ПЕРВИЧНЫЙ КЛЮЧ. Поскольку не все системы поддерживают явно именованные первичные ключи, для определения столбцов, составляющих эти ключи, применяется специальное средство-шлюз. Обратите внимание на то, что под первичным ключом понимается логический первичный ключ таблицы. Предполагается, что для каждого логического первичного ключа определен уникальный индекс. Этот уникальный индекс возвращает хранимая процедура sp_statistics.
Хранимая процедура sp_pkeys эквивалентна ODBC-функции SQLPrimaryKeys. Результаты упорядочиваются по столбцам TABLE_QUALIFIER, TABLE_OWNER, TABLE_NAME и KEY_SEQ.
Разрешения
Необходимо разрешение SELECT для схемы.
Примеры
В следующем примере возвращается первичный ключ таблицы HumanResources.Department в базе данных AdventureWorks2008R2.
USE AdventureWorks2008R2;
GO
EXEC sp_pkeys @table_name = N'Department'
,@table_owner = N'HumanResources';
См. также