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 = ] 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' ]
[ ; ]
Argomenti
[ @table_server = ] N'table_server'
Nome del server collegato per il quale restituire informazioni sulla tabella. @table_server è sysname, senza impostazione predefinita.
[ @pktab_name = ] N'pktab_name'
Nome della tabella con una chiave primaria. @pktab_name è sysname, con un valore predefinito .NULL
[ @pktab_schema = ] N'pktab_schema'
Nome dello schema con una chiave primaria. @pktab_schema è sysname, con un valore predefinito .NULL
In SQL Server questo parametro contiene il nome del proprietario.
[ @pktab_catalog = ] N'pktab_catalog'
Nome del catalogo con una chiave primaria. @pktab_catalog è sysname, con un valore predefinito .NULL
In SQL Server questo parametro contiene il nome del database.
[ @fktab_name = ] N'fktab_name'
Nome della tabella con una chiave esterna. @fktab_name è sysname, con un valore predefinito .NULL
[ @fktab_schema = ] N'fktab_schema'
Nome dello schema con una chiave esterna. @fktab_schema è sysname, con un valore predefinito .NULL
[ @fktab_catalog = ] N'fktab_catalog'
Nome del catalogo con una chiave esterna.@fktab_catalog è sysname, con un valore predefinito .NULL
Valori del codice restituito
Nessuno.
Set di risultati
Vari prodotti DBMS (Database Management System) supportano la denominazione in tre parti per le tabelle (<catalog>.<schema>.<table>
), rappresentate 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 dell'oggetto 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 chiave esterna, per ogni colonna dell'oggetto TABLE_NAME restituito. 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 = CASCADE modifiche alla chiave esterna.1 = NO ACTION cambia se la chiave esterna è presente.2 = SET_NULL ; impostare la chiave esterna 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 = CASCADE modifiche alla chiave esterna.1 = NO ACTION cambia se la chiave esterna è presente.2 = SET_NULL ; impostare la chiave esterna su NULL . |
FK_NAME |
sysname | Identificatore della chiave esterna. È NULL se non applicabile all'origine dati. SQL Server restituisce il nome del FOREIGN KEY vincolo. |
PK_NAME |
sysname | Identificatore della chiave primaria. È NULL se non applicabile all'origine dati. SQL Server restituisce il nome del PRIMARY KEY vincolo. |
DEFERRABILITY |
smallint | Indica se è possibile posticipare il controllo dei vincoli. |
Nel set di risultati le FK_NAME
colonne e PK_NAME
restituiscono NULL
sempre .
Osservazioni:
sp_foreignkeys
esegue una query sul set di righe FOREIGN_KEYS dell'interfaccia IDBSchemaRowset
del provider OLE DB che corrisponde a @table_server. I parametri @table_name, @table_schema, @table_catalog e @column vengono passati a questa interfaccia per limitare le righe restituite.
Autorizzazioni
È richiesta SELECT
l'autorizzazione 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';