sp_foreignkeys (Transact-SQL)

Aplica-se a: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 = ] 'table_server'   
     [ , [ @pktab_name = ] 'pktab_name' ]   
     [ , [ @pktab_schema = ] 'pktab_schema' ]   
     [ , [ @pktab_catalog = ] 'pktab_catalog' ]   
     [ , [ @fktab_name = ] 'fktab_name' ]   
     [ , [ @fktab_schema = ] 'fktab_schema' ]   
     [ , [ @fktab_catalog = ] 'fktab_catalog' ]  

Argumentos

[ @table_server = ] 'table_server' É o nome do servidor vinculado para o qual retornar informações da tabela. table_server é sysname, sem padrão.

[ @pktab_name = ] 'pktab_name' É o nome da tabela com uma chave primária. pktab_name é sysname, com um padrão de NULL.

[ @pktab_schema = ] 'pktab_schema' É o nome do esquema com uma chave primária. pktab_schemaé sysname, com um padrão de NULL. Em SQL Server, isso contém o nome do proprietário.

[ @pktab_catalog = ] 'pktab_catalog' É o nome do catálogo com uma chave primária. pktab_catalogé sysname, com um padrão de NULL. Em SQL Server, isso contém o nome do banco de dados.

[ @fktab_name = ] 'fktab_name' É o nome da tabela com uma chave estrangeira. fktab_nameé sysname, com um padrão de NULL.

[ @fktab_schema = ] 'fktab_schema' É o nome do esquema com uma chave estrangeira. fktab_schemaé sysname, com um padrão de NULL.

[ @fktab_catalog = ] '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

Conjuntos de resultados

Vários produtos DBMS dão suporte à nomenclatura de três partes para tabelas (catálogo).esquema.table), que é representado 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 coluna da chave primária, para cada coluna do TABLE_NAME retornada. 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. SQL Server retorna 0, 1 ou 2 para estas colunas:

0=CASCADE altera para chave estrangeira.

1=NO ACTION altera se a chave estrangeira estiver presente.

2=SET_NULL define a chave estrangeira como NULL.
DELETE_RULE smallint Ação aplicada à chave estrangeira quando a operação SQL é uma exclusão. SQL Server retorna 0, 1 ou 2 para estas colunas:

0=CASCADE altera para chave estrangeira.

1=NO ACTION altera se a chave estrangeira estiver presente.

2=SET_NULL define a chave estrangeira como NULL.
FK_NAME sysname Identificador de chave estrangeira. Será NULL se não for aplicável à fonte de dados. SQL Server retorna o nome da restrição FOREIGN KEY.
PK_NAME sysname Identificador da chave primária. Será NULL se não for aplicável à fonte de dados. SQL Server retorna o nome da restrição PRIMARY KEY.
DEFERRABILITY smallint Indica se a verificação de restrição é adiável.

No conjunto de resultados, as colunas FK_NAME e PK_NAME sempre retornam NULL.

Comentários

sp_foreignkeys consulta o conjunto de linhas FOREIGN_KEYS da interface IDBSchemaRowset do provedor OLE DB que corresponde a table_server. Os parâmetros table_name, table_schema, table_catalog e coluna 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';  

Consulte Também

sp_catalogs (Transact-SQL)
sp_column_privileges (Transact-SQL)
sp_indexes (Transact-SQL)
sp_linkedservers (Transact-SQL)
sp_primarykeys (Transact-SQL)
sp_tables_ex (Transact-SQL)
sp_table_privileges (Transact-SQL)
Procedimentos armazenados do sistema (Transact-SQL)