sp_foreignkeys (Transact-SQL)

Retorna as chaves estrangeiras que referenciam as chaves primárias na tabela do servidor vinculado.

Ícone de vínculo de tópicoConvenções de sintaxe 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 as informações de tabela devem ser retornadas. 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 NULL.

  • [ @pktab_schema = ] 'pktab_schema'
    É o nome do esquema com uma chave primária. pktab_schemaé sysname, com um padrão NULL. No SQL Server 2008, ele 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 NULL. No SQL Server, ele 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 NULL.

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

  • [ @fktab_catalog = ] 'fktab_catalog'
    É o nome do catálogo com uma chave estrangeira. fktab_catalogé sysname, com um padrão NULL.

Valores de código de retorno

Nenhum

Conjuntos de resultados

Vários produtos de DBMS dão suporte a nome de três partes para tabelas (catálogo**.esquema.**tabela), o 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). Este campo sempre retorna um valor.

PKCOLUMN_NAME

sysname

Nome de uma ou mais colunas de chave primária, para cada coluna de TABLE_NAME retornado. Este 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). Este campo sempre retorna um valor.

FKCOLUMN_NAME

sysname

Nome das colunas de chave estrangeira, para cada coluna do TABLE_NAME retornado. Este campo sempre retorna um valor.

KEY_SEQ

smallint

Número de sequência da coluna em uma chave primária de várias colunas. Este 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 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. 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. É NULL se não for aplicável à fonte de dados. O SQL Server retorna o nome da restrição FOREIGN KEY.

PK_NAME

sysname

Identificador de chave primária. Será NULL se não for aplicável à fonte de dados. O 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 column são passados a 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 AdventureWorks2008R2 do servidor vinculado, Seattle1.

EXEC sp_foreignkeys @table_server = N'Seattle1', 
   @pktab_name = N'Department', 
   @pktab_catalog = N'AdventureWorks2008R2';