Partilhar via


sp_foreignkeys (Transact-SQL)

Aplica-se a:SQL Server

Devolve as chaves estrangeiras que fazem referência às chaves primárias na tabela no servidor ligado.

Transact-SQL convenções de sintaxe

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' ]
[ ; ]

Arguments

[ @table_server = ] N'table_server'

O nome do servidor ligado para o qual devolver a informação 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, este 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 o padrão de NULL. No SQL Server, este parâmetro contém o nome da base de dados.

[ @fktab_name = ] N'fktab_name'

O nome da mesa 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 de código de retorno

Nenhum.

Conjunto de resultados

Vários produtos de sistemas de gestão de bases de dados (SGBD) suportam a nomenclatura em três partes para tabelas (<catalog>.<schema>.<table>), que é representada no conjunto de resultados.

Nome da coluna Tipo de dados Description
PKTABLE_CAT sysname Catálogo da tabela onde reside a chave primária.
PKTABLE_SCHEM sysname Esquema para a tabela onde reside a chave primária.
PKTABLE_NAME sysname Nome da tabela (com a chave primária). Este campo devolve sempre um valor.
PKCOLUMN_NAME sysname Nome da coluna ou colunas da chave primária, para cada coluna do TABLE_NAME devolvido. Este campo devolve sempre um valor.
FKTABLE_CAT sysname Catálogo da tabela onde reside a chave estrangeira.
FKTABLE_SCHEM sysname Esquema para a tabela onde reside a chave estrangeira.
FKTABLE_NAME sysname Nome da tabela (com uma chave estrangeira). Este campo devolve sempre um valor.
FKCOLUMN_NAME sysname Nome das colunas da chave estrangeira, para cada coluna do TABLE_NAME retorno. Este campo devolve sempre um valor.
KEY_SEQ smallint Número de sequência da coluna numa chave primária multicolunar. Este campo devolve sempre um valor.
UPDATE_RULE smallint Ação aplicada à chave estrangeira quando a operação SQL é uma atualização. O SQL Server devolve 0, 1 ou 2 para estas colunas:

0 = CASCADE alterações para tonalidade estrangeira.
1 = NO ACTION Altera-se a chave estrangeira estiver presente.
2 = SET_NULL; definir a chave estrangeira para NULL.
DELETE_RULE smallint Ação aplicada à chave estrangeira quando a operação SQL é uma eliminação. O SQL Server devolve 0, 1 ou 2 para estas colunas:

0 = CASCADE alterações para tonalidade estrangeira.
1 = NO ACTION Altera-se a chave estrangeira estiver presente.
2 = SET_NULL; definir a chave estrangeira para NULL.
FK_NAME sysname Identificador de chave estrangeira. Se não for NULL aplicável à fonte de dados. O SQL Server devolve o nome da FOREIGN KEY restrição.
PK_NAME sysname Identificador de chave primária. Se não for NULL aplicável à fonte de dados. O SQL Server devolve o nome da PRIMARY KEY restrição.
DEFERRABILITY smallint Indica se a verificação de restrições é diferida.

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

Observações

sp_foreignkeys consulta o conjunto de linhas FOREIGN_KEYS da IDBSchemaRowset interface do fornecedor OLE DB que corresponde a @table_server. Os parâmetros de @table_name, @table_schema, @table_catalog e @column são passados para esta interface para restringir as linhas devolvidas.

Permissions

Requer SELECT permissão no esquema.

Examples

O exemplo seguinte devolve a informação da chave estrangeira sobre a Department tabela na AdventureWorks2025 base de dados no servidor ligado, Seattle1.

EXECUTE sp_foreignkeys
    @table_server = N'Seattle1',
    @pktab_name = N'Department',
    @pktab_catalog = N'AdventureWorks2022';