sp_foreignkeys (Transact-SQL)
Restituisce le chiavi esterne che fanno riferimento alle chiavi primarie nella tabella del server collegato.
Convenzioni della 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 cui si desidera ottenere informazioni relative alle tabelle. table_server è di tipo sysname e non prevede alcun valore predefinito.
[ @pktab_name = ] 'pktab_name'
Nome della tabella contenente una chiave primaria. pktab_name è di tipo sysname e il valore predefinito è NULL.
[ @pktab_schema = ] 'pktab_schema'
Nome dello schema contenente una chiave primaria. pktab_schemaè di tipo sysname e il valore predefinito è NULL. In SQL Server 2005 contiene il nome del proprietario.
[ @pktab_catalog = ] 'pktab_catalog'
Nome del catalogo contenente una chiave primaria. pktab_catalogè di tipo sysname e il valore predefinito è NULL. In SQL Server contiene il nome del database.
[ @fktab_name = ] 'fktab_name'
Nome della tabella contenente una chiave esterna. fktab_nameè di tipo sysname e il valore predefinito è NULL.
[ @fktab_schema = ] 'fktab_schema'
Nome dello schema contenente una chiave esterna. fktab_schemaè di tipo sysname e il valore predefinito è NULL.
[ @fktab_catalog = ] 'fktab_catalog'
Nome del catalogo contenente una chiave esterna. fktab_catalogè di tipo sysname e il valore predefinito è NULL.
Set di risultati
Vari prodotti DBMS supportano i nomi di tabella composti da tre parti (catalogo**.schema.**tabella), adottati 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. In questo campo viene sempre restituito un valore. |
PKCOLUMN_NAME |
sysname |
Nome delle colonne della chiave primaria, per ogni colonna della tabella TABLE_NAME restituita. In questo campo viene sempre restituito 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. In questo campo viene sempre restituito un valore. |
FKCOLUMN_NAME |
sysname |
Nome delle colonne della chiave esterna, per ogni colonna della tabella TABLE_NAME restituita. In questo campo viene sempre restituito un valore. |
KEY_SEQ |
smallint |
Numero di sequenza della colonna in una chiave primaria a più colonne. In questo campo viene sempre restituito un valore. |
UPDATE_RULE |
smallint |
Azione applicata alla chiave esterna quando l'operazione SQL è un aggiornamento. SQL Server restituisce 0 o 1 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 o 1 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 dei dati. SQL Server restituisce il nome del vincolo FOREIGN KEY. |
PK_NAME |
sysname |
Identificatore della chiave primaria. NULL se non è applicabile all'origine dei 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
La stored procedure sp_foreignkeys esegue una query nel set di righe FOREIGN_KEYS dell'interfaccia IDBSchemaRowset del provider OLE DB corrispondente a table_server. I parametri table_name, table_schema, table_catalog e column vengono passati a questa interfaccia per limitare il numero di righe restituite.
Autorizzazioni
È richiesta l'autorizzazione SELECT per lo schema.
Valori restituiti
Nessuno
Esempi
Nell'esempio seguente vengono restituite informazioni relative alla chiave esterna per la tabella Department
del database AdventureWorks
presente nel server collegato Seattle1
.
EXEC sp_foreignkeys @table_server = N'Seattle1',
@pktab_name = N'Department',
@pktab_catalog = N'AdventureWorks'
Vedere anche
Riferimento
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)
Altre risorse
Separazione fra schema e utente