sp_foreignkeys (Transact-SQL)
Область применения: SQL Server
Возвращает внешние ключи, ссылающиеся на первичные ключи в таблице на связанном сервере.
Соглашения о синтаксисе Transact-SQL
Синтаксис
sp_foreignkeys
[ @table_server = ] N'table_server'
[ , [ @pktab_name = ] N'pktab_name' ]
[ , [ @pktab_schema = ] N'pktab_schema' ]
[ , [ @pktab_catalog = ] N'pktab_catalog' ]
[ , [ @fktab_name = ] N'fktab_name' ]
[ , [ @fktab_schema = ] N'fktab_schema' ]
[ , [ @fktab_catalog = ] N'fktab_catalog' ]
[ ; ]
Аргументы
[ @table_server = ] N'table_server'
Имя связанного сервера, для которого возвращаются сведения о таблице. @table_server — sysname без значения по умолчанию.
[ @pktab_name = ] N'pktab_name'
Имя таблицы с первичным ключом. @pktab_name — sysname с значением по умолчаниюNULL
.
[ @pktab_schema = ] N'pktab_schema'
Имя схемы с первичным ключом. @pktab_schema имеет имя sysname с значением по умолчаниюNULL
. В SQL Server этот параметр содержит имя владельца.
[ @pktab_catalog = ] N'pktab_catalog'
Имя каталога с первичным ключом. @pktab_catalog — sysname с значением по умолчаниюNULL
. В SQL Server этот параметр содержит имя базы данных.
[ @fktab_name = ] N'fktab_name'
Имя таблицы с внешним ключом. @fktab_name имеет имя sysname с значением по умолчаниюNULL
.
[ @fktab_schema = ] N'fktab_schema'
Имя схемы с внешним ключом. @fktab_schema — sysname с значением по умолчаниюNULL
.
[ @fktab_catalog = ] N'fktab_catalog'
Имя каталога с внешним ключом.@fktab_catalog — sysname с значением по умолчаниюNULL
.
Значения кода возврата
Нет.
Результирующий набор
Различные продукты управления базами данных (СУБД) поддерживают трехкомпонентное именование таблиц (<catalog>.<schema>.<table>
), представленных в результирующем наборе.
Имя столбца | Тип данных | Description |
---|---|---|
PKTABLE_CAT |
sysname | Каталог для таблицы, в котором находится первичный ключ. |
PKTABLE_SCHEM |
sysname | Схема для таблицы, в которой находится первичный ключ. |
PKTABLE_NAME |
sysname | Имя таблицы (с первичным ключом). Это поле всегда возвращает значение. |
PKCOLUMN_NAME |
sysname | Имя столбца или столбца первичного ключа для каждого возвращаемого TABLE_NAME столбца. Это поле всегда возвращает значение. |
FKTABLE_CAT |
sysname | Каталог для таблицы, в котором находится внешний ключ. |
FKTABLE_SCHEM |
sysname | Схема для таблицы, в которой находится внешний ключ. |
FKTABLE_NAME |
sysname | Имя таблицы (с внешним ключом). Это поле всегда возвращает значение. |
FKCOLUMN_NAME |
sysname | Имя столбцов внешнего ключа для каждого возвращаемого TABLE_NAME столбца. Это поле всегда возвращает значение. |
KEY_SEQ |
smallint | Порядковый номер столбца в первичном ключе, состоящем из нескольких столбцов. Это поле всегда возвращает значение. |
UPDATE_RULE |
smallint | Действие, совершаемое над внешним ключом, когда операция SQL является операцией обновления. SQL Server возвращает 0, 1 или 2 для следующих столбцов:0 = CASCADE изменения внешнего ключа.1 = NO ACTION изменяется, если внешний ключ присутствует.2 = SET_NULL ; Задайте для внешнего ключа NULL значение . |
DELETE_RULE |
smallint | Действие, совершаемое над внешним ключом, когда операция SQL является операцией удаления. SQL Server возвращает 0, 1 или 2 для следующих столбцов:0 = CASCADE изменения внешнего ключа.1 = NO ACTION изменяется, если внешний ключ присутствует.2 = SET_NULL ; Задайте для внешнего ключа NULL значение . |
FK_NAME |
sysname | Идентификатор внешнего ключа. NULL Если это не применимо к источнику данных. SQL Server возвращает FOREIGN KEY имя ограничения. |
PK_NAME |
sysname | Идентификатор первичного ключа. NULL Если это не применимо к источнику данных. SQL Server возвращает PRIMARY KEY имя ограничения. |
DEFERRABILITY |
smallint | Указывает, допускается ли задержка проверки ограничений. |
В результирующем наборе FK_NAME
всегда PK_NAME
возвращаются NULL
столбцы.
Замечания
sp_foreignkeys
запрашивает набор IDBSchemaRowset
строк FOREIGN_KEYS интерфейса поставщика OLE DB, соответствующего @table_server. Параметры @table_name, @table_schema, @table_catalog и @column передаются в этот интерфейс, чтобы ограничить возвращаемые строки.
Разрешения
Требуется SELECT
разрешение на схему.
Примеры
В следующем примере возвращается информация внешнего ключа о таблице Department
в базе данных AdventureWorks2022
на связанном сервере Seattle1
.
EXEC sp_foreignkeys @table_server = N'Seattle1',
@pktab_name = N'Department',
@pktab_catalog = N'AdventureWorks2022';