sp_foreignkeys (Transact-SQL)
Retorna as chaves estrangeiras que referenciam as chaves primárias na tabela do servidor vinculado.
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';
Consulte também