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)
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de