sp_pkeys (Transact-SQL)
Возвращает сведения о первичном ключе заданной таблицы в текущей среде.
Соглашения о синтаксисе в 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, принадлежащую владельцу базы данных. При обнаружении таблицы возвращаются ее столбцы.
- [ @pktable_qualifier = ] 'qualifier'
Квалификатор таблицы. Аргумент qualifier имеет тип sysname и значение по умолчанию NULL. Различные продукты СУБД поддерживают имена таблиц из трех частей (квалификатор**.владелец.**имя). В 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.
В ODBC аналогом хранимой процедуры sp_pkeys является SQLPrimaryKeys. Результаты упорядочиваются по столбцам TABLE_QUALIFIER, TABLE_OWNER, TABLE_NAME и KEY_SEQ.
Разрешения
Необходимо разрешение SELECT для схемы.
Примеры
В следующем примере возвращается первичный ключ таблицы HumanResources.Department
в базе данных AdventureWorks
.
USE AdventureWorks;
GO
EXEC sp_pkeys @table_name = N'Department',
@table_owner = N'HumanResources'
См. также
Справочник
Хранимые процедуры каталога (Transact-SQL)
Системные хранимые процедуры (Transact-SQL)