Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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 AdventureWorks2025 do servidor vinculado, Seattle1.
EXECUTE sp_foreignkeys
@table_server = N'Seattle1',
@pktab_name = N'Department',
@pktab_catalog = N'AdventureWorks2022';