Поделиться через


sp_primarykeys (Transact-SQL)

Возвращает столбцы первичных ключей для указанной удаленной таблицы, по одной строке на ключевой столбец.

Значок ссылки на разделСинтаксические обозначения в Transact-SQL

Синтаксис

sp_primarykeys [ @table_server = ] 'table_server' 
     [ , [ @table_name = ] 'table_name' ] 
     [ , [ @table_schema = ] 'table_schema' ] 
     [ , [ @table_catalog = ] 'table_catalog' ]

Аргументы

  • [ @table_server = ] **'**table_server'
    Имя связанного сервера, с которого возвращаются сведения о первичном ключе. Аргумент table_server имеет тип sysname и не имеет значения по умолчанию.

  • [ @table_name = ] 'table_name'
    Имя таблицы, для которой возвращаются сведения о первичном ключе. Аргумент table_name имеет тип sysname и значение по умолчанию NULL.

  • [ @table_schema = ] 'table_schema'
    Схема таблицы. Аргумент table_schema имеет тип sysname и значение по умолчанию NULL. В среде SQL Server 2008 соответствует владельцу таблицы.

  • [ @table_catalog = ] 'table_catalog'
    Имя каталога, в котором расположена указанная таблица table_name. В среде SQL Server соответствует имени базы данных. Аргумент table_catalog имеет тип sysname и значение по умолчанию NULL.

Значения кодов возврата

Нет

Результирующие наборы

Имя столбца

Тип данных

Описание

TABLE_CAT

sysname

Каталог таблицы.

TABLE_SCHEM

sysname

Схема таблицы.

TABLE_NAME

sysname

Имя таблицы.

COLUMN_NAME

sysname

Имя столбца.

KEY_SEQ

int

Порядковый номер столбца в первичном ключе, состоящем из нескольких столбцов.

PK_NAME

sysname

Идентификатор первичного ключа. Возвращает NULL, если не применим к источнику данных.

Замечания

Процедура sp_primarykeys запрашивает набор строк PRIMARY_KEYS интерфейса IDBSchemaRowset поставщика OLE DB, соответствующего аргументу table_server. Этому интерфейсу, чтобы ограничить число возвращаемых строк, передаются аргументы table_name, table_schema, table_catalog и column.

Хранимая процедура sp_primarykeys возвращает пустой результирующий набор, если поставщик OLE DB указанного связанного сервера не поддерживает набор строк PRIMARY_KEYS интерфейса IDBSchemaRowset.

Разрешения

Необходимо разрешение SELECT для схемы.

Примеры

В следующем примере с сервера LONDON1 возвращаются столбцы первичного ключа для таблицы HumanResources.JobCandidate в базе данных AdventureWorks.

EXEC sp_primarykeys @table_server = N'LONDON1', 
   @table_name = N'JobCandidate',
   @table_catalog = N'AdventureWorks', 
   @table_schema = N'HumanResources'