sp_foreignkeys (Transact-SQL)
Aplica-se: SQL Server
Retorna as chaves estrangeiras que referenciam as chaves primárias na tabela do servidor vinculado.
Convenções de sintaxe de Transact-SQL
Sintaxe
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' ]
[ ; ]
Argumentos
@table_server [ = ] N'table_server'
O nome do servidor vinculado para o qual retornar informações da tabela. @table_server é sysname, sem padrão.
@pktab_name [ = ] N'pktab_name'
O nome da tabela com uma chave primária. @pktab_name é sysname, com um padrão de NULL
.
@pktab_schema [ = ] N'pktab_schema'
O nome do esquema com uma chave primária. @pktab_schema é sysname, com um padrão de NULL
. No SQL Server, esse parâmetro contém o nome do proprietário.
@pktab_catalog [ = ] N'pktab_catalog'
O nome do catálogo com uma chave primária. @pktab_catalog é sysname, com um padrão de NULL
. No SQL Server, esse parâmetro contém o nome do banco de dados.
@fktab_name [ = ] N'fktab_name'
O nome da tabela com uma chave estrangeira. @fktab_name é sysname, com um padrão de NULL
.
@fktab_schema [ = ] N'fktab_schema'
O nome do esquema com uma chave estrangeira. @fktab_schema é sysname, com um padrão de NULL
.
@fktab_catalog [ = ] N'fktab_catalog'
O nome do catálogo com uma chave estrangeira.@fktab_catalog é sysname, com um padrão de NULL
.
Valores do código de retorno
Nenhum.
Conjunto de resultados
Vários produtos de sistema de gerenciamento de banco de dados (DBMS) suportam nomenclatura de três partes para tabelas (<catalog>.<schema>.<table>
), que é representada no conjunto de resultados.
Nome da coluna | Tipo de dados | Descrição |
---|---|---|
PKTABLE_CAT |
sysname | Catálogo para a tabela na qual a chave primária reside. |
PKTABLE_SCHEM |
sysname | Esquema para a tabela na qual a chave primária reside. |
PKTABLE_NAME |
sysname | Nome da tabela (com a chave primária). Esse campo sempre retorna um valor. |
PKCOLUMN_NAME |
sysname | Nome da coluna ou colunas de chave primária, para cada coluna do TABLE_NAME retornado. Esse campo sempre retorna um valor. |
FKTABLE_CAT |
sysname | Catálogo para a tabela na qual a chave estrangeira reside. |
FKTABLE_SCHEM |
sysname | Esquema para a tabela na qual a chave estrangeira reside. |
FKTABLE_NAME |
sysname | Nome da tabela (com a chave estrangeira). Esse campo sempre retorna um valor. |
FKCOLUMN_NAME |
sysname | Nome das colunas de chave estrangeira, para cada coluna do TABLE_NAME retornado. Esse campo sempre retorna um valor. |
KEY_SEQ |
smallint | Número de sequência da coluna em uma chave primária de várias colunas. Esse campo sempre retorna um valor. |
UPDATE_RULE |
smallint | Ação aplicada à chave estrangeira quando a operação SQL é uma atualização. O SQL Server retorna 0, 1 ou 2 para estas colunas:0 = CASCADE Alterações na chave estrangeira.1 = NO ACTION muda se a chave estrangeira estiver presente.2 = SET_NULL ; Defina a chave estrangeira como NULL . |
DELETE_RULE |
smallint | Ação aplicada à chave estrangeira quando a operação SQL é uma exclusão. O SQL Server retorna 0, 1 ou 2 para estas colunas:0 = CASCADE Alterações na chave estrangeira.1 = NO ACTION muda se a chave estrangeira estiver presente.2 = SET_NULL ; Defina a chave estrangeira como NULL . |
FK_NAME |
sysname | Identificador de chave estrangeira. Se não for NULL aplicável à fonte de dados. SQL Server retorna o nome da FOREIGN KEY restrição. |
PK_NAME |
sysname | Identificador da chave primária. Se não for NULL aplicável à fonte de dados. SQL Server retorna o nome da PRIMARY KEY restrição. |
DEFERRABILITY |
smallint | Indica se a verificação de restrição é adiável. |
No conjunto de resultados, as FK_NAME
colunas e PK_NAME
sempre retornam NULL
.
Comentários
sp_foreignkeys
consulta o conjunto de linhas FOREIGN_KEYS da IDBSchemaRowset
interface do provedor OLE DB que corresponde a @table_server. Os parâmetros @table_name, @table_schema, @table_catalog e @column são passados para essa interface para restringir as linhas retornadas.
Permissões
Requer a permissão SELECT
no esquema.
Exemplos
O exemplo a seguir retorna informações de chave estrangeira sobre a tabela Department
no banco de dados AdventureWorks2022
do servidor vinculado, Seattle1
.
EXEC sp_foreignkeys @table_server = N'Seattle1',
@pktab_name = N'Department',
@pktab_catalog = N'AdventureWorks2022';