sp_pkeys (Transact-SQL)
Область применения: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure хранилище платформы Аналитики Azure Synapse Analytics (PDW) в Microsoft Fabric
Возвращает сведения о первичном ключе заданной таблицы в текущей среде.
Соглашения о синтаксисе Transact-SQL
Синтаксис
-- Syntax for SQL Server, Azure SQL Database, Azure Synapse Analytics, Parallel Data Warehouse
sp_pkeys [ @table_name = ] 'name'
[ , [ @table_owner = ] 'owner' ]
[ , [ @table_qualifier = ] 'qualifier' ]
Аргументы
[ ] @table_name= 'name'
Таблица, для которой возвращаются сведения. имя — sysname, без значения по умолчанию. Сопоставление по шаблону не поддерживается.
[ ] @table_owner= "владелец"
Задает владельца указанной таблицы. владелец имеет имя sysname с значением NULL по умолчанию. Сопоставление по шаблону не поддерживается. Если владелец не указан, применяются правила видимости таблицы по умолчанию для базовых СУБД.
В SQL Server, если текущий пользователь владеет таблицей с указанным именем, возвращаются столбцы этой таблицы. Если владелец не указан, а текущий пользователь не владеет таблицей с указанным именем, эта процедура ищет таблицу с указанным именем, принадлежащим владельцу базы данных. Если такая таблица существует, возвращаются ее столбцы.
[ ] @table_qualifier= 'qualifier'
Квалификатор таблицы. квалификатор — sysname с значением NULL по умолчанию. Различные продукты СУБД поддерживают трехкомпонентное именование таблиц (квалификатор).владелец.имя). В SQL Server этот столбец представляет имя базы данных. В некоторых СУБД он представляет имя сервера в среде базы данных, в которой находится таблица.
Значения кода возврата
нет
Результирующие наборы
Имя столбца | Тип данных | Description |
---|---|---|
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 эквивалентна SQLPrimaryKeys в ODBC. Результаты упорядочиваются по столбцам TABLE_QUALIFIER, TABLE_OWNER, TABLE_NAME и KEY_SEQ.
Разрешения
Необходимо разрешение SELECT для схемы.
Примеры
В следующем примере возвращается первичный ключ таблицы HumanResources.Department
в базе данных AdventureWorks2022
.
USE AdventureWorks2022;
GO
EXEC sp_pkeys @table_name = N'Department'
,@table_owner = N'HumanResources';
Примеры: Azure Synapse Analytics и система платформы аналитики (PDW)
В следующем примере возвращается первичный ключ таблицы DimAccount
в базе данных AdventureWorksPDW2012
. Он возвращает нулевые строки, указывающие, что в таблице нет первичного ключа.
-- Uses AdventureWorksPDW
EXEC sp_pkeys @table_name = N'DimAccount';
См. также
Хранимые процедуры каталога (Transact-SQL)
Системные хранимые процедуры (Transact-SQL)