sp_foreignkeys (Transact-SQL)
Si applica a: SQL Server
Restituisce le chiavi esterne che fanno riferimento alle chiavi primarie nella tabella del server collegato.
Convenzioni relative alla sintassi Transact-SQL
Sintassi
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' ]
Argomenti
[ @table_server = ] 'table_server'
Nome del server collegato per il quale restituire informazioni sulla tabella. table_server è sysname, senza impostazione predefinita.
[ @pktab_name = ] 'pktab_name'
Nome della tabella con una chiave primaria. pktab_name è sysname, con un valore predefinito NULL.
[ @pktab_schema = ] 'pktab_schema'
Nome dello schema con una chiave primaria. pktab_schema è sysname, con valore predefinito NULL. In SQL Server questo contiene il nome del proprietario.
[ @pktab_catalog = ] 'pktab_catalog'
Nome del catalogo con una chiave primaria. pktab_catalog è sysname, con valore predefinito NULL. In SQL Server questo contiene il nome del database.
[ @fktab_name = ] 'fktab_name'
Nome della tabella con una chiave esterna. fktab_name è sysname, con valore predefinito NULL.
[ @fktab_schema = ] 'fktab_schema'
Nome dello schema con una chiave esterna. fktab_schema è sysname, con valore predefinito NULL.
[ @fktab_catalog = ] 'fktab_catalog'
Nome del catalogo con una chiave esterna. fktab_catalog è sysname, con valore predefinito NULL.
Valori del codice restituito
None
Set di risultati
Vari prodotti DBMS supportano la denominazione in tre parti per le tabelle (catalogo.schema.table), rappresentato nel set di risultati.
Nome colonna | Tipo di dati | Descrizione |
---|---|---|
PKTABLE_CAT | sysname | Catalogo della tabella contenente la chiave primaria. |
PKTABLE_SCHEM | sysname | Schema della tabella contenente la chiave primaria. |
PKTABLE_NAME | sysname | Nome della tabella contenente la chiave primaria. Questo campo restituisce sempre un valore. |
PKCOLUMN_NAME | sysname | Nome della colonna o delle colonne chiave primaria, per ogni colonna del TABLE_NAME restituito. Questo campo restituisce sempre un valore. |
FKTABLE_CAT | sysname | Catalogo della tabella contenente la chiave esterna. |
FKTABLE_SCHEM | sysname | Schema della tabella contenente la chiave esterna. |
FKTABLE_NAME | sysname | Nome della tabella contenente una chiave esterna. Questo campo restituisce sempre un valore. |
FKCOLUMN_NAME | sysname | Nome delle colonne chiavi esterne, per ogni colonna della tabella TABLE_NAME restituita. Questo campo restituisce sempre un valore. |
KEY_SEQ | smallint | Numero sequenziale della colonna in una chiave primaria a più colonne. Questo campo restituisce sempre un valore. |
UPDATE_RULE | smallint | Azione applicata alla chiave esterna quando l'operazione SQL è un aggiornamento. SQL Server restituisce 0, 1 o 2 per queste colonne: 0 = modifiche di tipo CASCADE alla chiave esterna. 1 = modifiche di tipo NO ACTION se la chiave esterna è presente. 2 = SET_NULL; la chiave esterna viene impostata su NULL. |
DELETE_RULE | smallint | Azione applicata alla chiave esterna quando l'operazione SQL è un'operazione di eliminazione. SQL Server restituisce 0, 1 o 2 per queste colonne: 0 = modifiche di tipo CASCADE alla chiave esterna. 1 = modifiche di tipo NO ACTION se la chiave esterna è presente. 2 = SET_NULL; la chiave esterna viene impostata su NULL. |
FK_NAME | sysname | Identificatore della chiave esterna. NULL se non è applicabile all'origine dati. SQL Server restituisce il nome del vincolo FOREIGN KEY. |
PK_NAME | sysname | Identificatore della chiave primaria. NULL se non è applicabile all'origine dati. SQL Server restituisce il nome del vincolo PRIMARY KEY. |
DEFERRABILITY | smallint | Indica se è possibile posticipare il controllo dei vincoli. |
Nel set di risultati le colonne FK_NAME e PK_NAME restituiscono sempre NULL.
Osservazioni:
sp_foreignkeys esegue una query sul set di righe FOREIGN_KEYS dell'interfaccia IDBSchemaRowset del provider OLE DB corrispondente a table_server. I parametri di table_name, table_schema, table_catalog e colonna vengono passati a questa interfaccia per limitare le righe restituite.
Autorizzazioni
È richiesta l'autorizzazione SELECT per lo schema.
Esempi
Nell'esempio seguente vengono restituite informazioni relative alla chiave esterna per la tabella Department
del database AdventureWorks2022
presente nel server collegato Seattle1
.
EXEC sp_foreignkeys @table_server = N'Seattle1',
@pktab_name = N'Department',
@pktab_catalog = N'AdventureWorks2022';
Vedi anche
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)
Stored procedure di sistema (Transact-SQL)
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per