Condividi tramite


sp_foreignkeys (Transact-SQL)

Restituisce le chiavi esterne che fanno riferimento alle chiavi primarie nella tabella del server collegato.

Icona di collegamento a un argomentoConvenzioni 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

Guida in linea e informazioni

Assistenza su SQL Server 2005