Raccolte di schemi SQL Server

Il provider di dati Microsoft .NET Framework per SQL Server, oltre alle raccolte di schemi comuni, supporta raccolte di schemi aggiuntivi. Le raccolte di schemi variano leggermente in base alla versione di SQL Server usata. Per determinare l'elenco delle raccolte di schemi supportate, chiamare il metodo GetSchema senza argomenti oppure con il nome della raccolta di schemi "MetaDataCollections". In questo modo verrà restituito un oggetto DataTable con un elenco delle raccolte di schemi supportati, il numero delle restrizioni supportate da ciascuna raccolta e il numero di parti identificatore usate.

Database

ColumnName Tipo di dati Descrizione
database_name String Nome del database di .
dbid Int16 ID del database.
create_date Data/Ora Data di creazione del database.

Chiavi esterne

ColumnName Tipo di dati Descrizione
CONSTRAINT_CATALOG String Catalogo a cui appartiene il vincolo.
CONSTRAINT_SCHEMA String Schema contenente il vincolo.
CONSTRAINT_NAME String Nome.
TABLE_CATALOG String Nome della tabella contenente il vincolo.
TABLE_SCHEMA String Schema contenente la tabella.
TABLE_NAME String Nome tabella
CONSTRAINT_TYPE String Tipo di vincolo. È consentito solo il tipo "FOREIGN KEY".
IS_DEFERRABLE String Specifica se il vincolo può essere rinviato. Restituisce NO.
INITIALLY_DEFERRED String Specifica se inizialmente il vincolo può essere rinviato. Restituisce NO.

Indici

ColumnName Tipo di dati Descrizione
constraint_catalog String Catalogo a cui appartiene l'indice.
constraint_schema String Schema contenente l'indice.
constraint_name String Nome dell'indice.
table_catalog String Nome della tabella a cui è associato l'indice.
table_schema String Schema contenente la tabella a cui è associato l'indice.
table_name String Nome della tabella.
index_name String Nome dell'indice.

Indexes (SQL Server 2008)

A partire da .NET Framework versione 3.5 SP1 e SQL Server 2008, le colonne seguenti sono state aggiunte alla raccolta di schemi Indexes per supportare nuovi tipi di dati spaziali, filestream e colonne di tipo sparse. Tali colonne non sono supportate nelle versioni precedenti di .NET Framework e di SQL Server.

ColumnName Tipo di dati Descrizione
type_desc String I valori del tipo di indice sono i seguenti:

- HEAP
- CLUSTERED
- NONCLUSTERED
- XML
- SPATIAL

IndexColumns

ColumnName Tipo di dati Descrizione
constraint_catalog String Catalogo a cui appartiene l'indice.
constraint_schema String Schema contenente l'indice.
constraint_name String Nome dell'indice.
table_catalog String Nome della tabella a cui è associato l'indice.
table_schema String Schema contenente la tabella a cui è associato l'indice.
table_name String Nome della tabella.
column_name String Nome della colonna a cui è associato l'indice.
ordinal_position Int32 Posizione ordinale della colonna.
KeyType Byte Tipo di oggetto.
index_name String Nome dell'indice.

Procedure

ColumnName Tipo di dati Descrizione
SPECIFIC_CATALOG String Nome specifico del catalogo.
SPECIFIC_SCHEMA String Nome specifico dello schema.
SPECIFIC_NAME String Nome specifico del catalogo.
ROUTINE_CATALOG String Il catalogo a cui appartiene la stored procedure.
ROUTINE_SCHEMA String Lo schema contenente la stored procedure.
ROUTINE_NAME String Nome della stored procedure.
ROUTINE_TYPE String Restituisce PROCEDURE per le stored procedure e FUNCTION per le funzioni.
CREATED Data/Ora L'ora in cui è stata creata la routine.
LAST_ALTERED Data/Ora Data e ora dell'ultima modifica della routine.

Parametri di procedure

ColumnName Tipo di dati Descrizione
SPECIFIC_CATALOG String Nome del catalogo della routine per cui viene specificato questo parametro.
SPECIFIC_SCHEMA String Lo schema contenente la routine a cui appartiene questo parametro.
SPECIFIC_NAME String Il nome della routine contenente questo parametro.
ORDINAL_POSITION Int32 Posizione ordinale del parametro a partire da 1. Per il valore restituito di una routine, è uguale a 0.
PARAMETER_MODE String Restituisce IN se è un parametro di input, OUT se è un parametro di output e INOUT se è un parametro di input/output.
IS_RESULT String Restituisce YES se indica il risultato di una routine che è una funzione. In caso contrario restituisce NO.
AS_LOCATOR String Restituisce YES se dichiarato come indicatore di posizione. In caso contrario restituisce NO.
PARAMETER_NAME String Nome del parametro. È NULL se corrisponde al valore restituito da una funzione.
DATA_TYPE String Tipo di dati di sistema.
CHARACTER_MAXIMUM_LENGTH Int32 Lunghezza massima in caratteri per tipi di dati binary o character. In caso contrario, viene restituito NULL.
CHARACTER_OCTET_LENGTH Int32 Lunghezza massima in byte per tipi di dati binary o character. In caso contrario, viene restituito NULL.
COLLATION_CATALOG String Il nome del catalogo per le regole di confronto del parametro. Se non si tratta di uno dei tipi di dati character, restituisce NULL.
COLLATION_SCHEMA String Viene restituito sempre NULL.
COLLATION_NAME String Nome delle regole di confronto del parametro. Se non si tratta di uno dei tipi di dati character, restituisce NULL.
CHARACTER_SET_CATALOG String Nome del catalogo in cui è definito il set di caratteri del parametro. Se non si tratta di uno dei tipi di dati character, restituisce NULL.
CHARACTER_SET_SCHEMA String Viene restituito sempre NULL.
CHARACTER_SET_NAME String Nome del set di caratteri del parametro. Se non si tratta di uno dei tipi di dati character, restituisce NULL.
NUMERIC_PRECISION Byte Precisione dei dati numerici approssimati, dei dati numerici esatti, dei dati integer o dei dati in valuta. In caso contrario, viene restituito NULL.
NUMERIC_PRECISION_RADIX Int16 Base di precisione dei dati numerici approssimati, dei dati numerici esatti, dei dati integer o dei dati in valuta. In caso contrario, viene restituito NULL.
NUMERIC_SCALE Int32 Scala dei dati numerici approssimati, dei dati numerici esatti, dei dati integer o dei dati in valuta. In caso contrario, viene restituito NULL.
DATETIME_PRECISION Int16 La precisione in secondi frazionari se il tipo di parametro è datetime oppure smalldatetime. In caso contrario, viene restituito NULL.
INTERVAL_TYPE String NULL. Riservato per un utilizzo futuro da parte di SQL Server.
INTERVAL_PRECISION Int16 NULL. Riservato per un utilizzo futuro da parte di SQL Server.

Tabelle

ColumnName Tipo di dati Descrizione
TABLE_CATALOG String Catalogo della tabella.
TABLE_SCHEMA String Schema contenente la tabella.
TABLE_NAME String Nome tabella.
TABLE_TYPE String Tipo di tabella. I possibili valori sono VIEW o BASE TABLE.

Colonne

ColumnName Tipo di dati Descrizione
TABLE_CATALOG String Catalogo della tabella.
TABLE_SCHEMA String Schema contenente la tabella.
TABLE_NAME String Nome tabella.
COLUMN_NAME String Nome colonna.
ORDINAL_POSITION Int32 Numero di identificazione della colonna.
COLUMN_DEFAULT String Il valore predefinito della colonna.
IS_NULLABLE String Impostazione relativa al supporto di valori Null nella colonna. Se la colonna supporta i valori NULL, restituisce YES. In caso contrario, restituisce NO.
DATA_TYPE String Tipo di dati di sistema.
CHARACTER_MAXIMUM_LENGTH Int32 – Sql8, Int16 – Sql7 Lunghezza massima espressa in caratteri per i dati di tipo binario, carattere, text o image. Per gli altri tipi di dati viene restituito NULL.
CHARACTER_OCTET_LENGTH Int32 – SQL8, Int16 – Sql7 Lunghezza massima espressa in byte per i dati di tipo binario, carattere, text o image. Per gli altri tipi di dati viene restituito NULL.
NUMERIC_PRECISION Unsigned Byte Precisione dei dati numerici approssimati, dei dati numerici esatti, dei dati integer o dei dati in valuta. Per gli altri tipi di dati viene restituito NULL.
NUMERIC_PRECISION_RADIX Int16 Base di precisione dei dati numerici approssimati, dei dati numerici esatti, dei dati integer o dei dati in valuta. Per gli altri tipi di dati viene restituito NULL.
NUMERIC_SCALE Int32 Scala dei dati numerici approssimati, dei dati numerici esatti, dei dati integer o dei dati in valuta. Per gli altri tipi di dati viene restituito NULL.
DATETIME_PRECISION Int16 Codice di sottotipo per i tipi di dati SQL-92 datetime e interval. Per gli altri tipi di dati viene restituito NULL.
CHARACTER_SET_CATALOG String Se la colonna presenta un tipo di dati carattere o testo, viene restituito master, che indica il database in cui è posizionato il set di caratteri. Per gli altri tipi di dati viene restituito NULL.
CHARACTER_SET_SCHEMA String Viene restituito sempre NULL.
CHARACTER_SET_NAME String Se la colonna presenta un tipo di dati carattere o testo, viene restituito il nome univoco del set di caratteri. Per gli altri tipi di dati viene restituito NULL.
COLLATION_CATALOG String Se la colonna presenta un tipo di dati carattere o testo, viene restituito master, che indica il database in cui sono definite le regole di confronto. Negli altri casi la colonna è NULL.

Columns (SQL Server 2008)

A partire da .NET Framework versione 3.5 SP1 e SQL Server 2008, le colonne seguenti sono state aggiunte alla raccolta di schemi Columns per supportare nuovi tipi di dati spaziali, filestream e colonne di tipo sparse. Tali colonne non sono supportate nelle versioni precedenti di .NET Framework e di SQL Server.

ColumnName Tipo di dati Descrizione
IS_FILESTREAM String YES in caso di colonna con attributo FILESTREAM.

NO se la colonna non dispone dell'attributo FILESTREAM.
IS_SPARSE String YES in caso di colonna di tipo sparse.

NO se la colonna non è di tipo sparse.
IS_COLUMN_SET String YES in caso di colonna del set di colonne.

NO se la colonna non fa parte del set di colonne.

AllColumns (SQL Server 2008)

A partire da .NET Framework versione 3.5 SP1 e SQL Server 2008, è stata aggiunta la raccolta di schemi AllColumns per supportare colonne di tipo sparse. AllColumns non è supportato nelle versioni precedenti di .NET Framework e di SQL Server.

AllColumns dispone delle stesse restrizioni e dello schema DataTable risultante della raccolta di schemi Columns, l'unica differenza è costituita dal fatto che AllColumns include colonne del set di colonne che non sono incluse nella raccolta di schemi Columns. Nella tabella seguente vengono descritte queste colonne.

ColumnName Tipo di dati Descrizione
TABLE_CATALOG String Catalogo della tabella.
TABLE_SCHEMA String Schema contenente la tabella.
TABLE_NAME String Nome tabella.
COLUMN_NAME String Nome colonna.
ORDINAL_POSITION Int32 Numero di identificazione della colonna.
COLUMN_DEFAULT String Il valore predefinito della colonna.
IS_NULLABLE String Impostazione relativa al supporto di valori Null nella colonna. Se la colonna supporta i valori NULL, restituisce YES. In caso contrario, viene restituito NO.
DATA_TYPE String Tipo di dati di sistema.
CHARACTER_MAXIMUM_LENGTH Int32 Lunghezza massima espressa in caratteri per i dati di tipo binario, carattere, text o image. Per gli altri tipi di dati viene restituito NULL.
CHARACTER_OCTET_LENGTH Int32 Lunghezza massima espressa in byte per i dati di tipo binario, carattere, text o image. Per gli altri tipi di dati viene restituito NULL.
NUMERIC_PRECISION Unsigned Byte Precisione dei dati numerici approssimati, dei dati numerici esatti, dei dati integer o dei dati in valuta. Per gli altri tipi di dati viene restituito NULL.
NUMERIC_PRECISION_RADIX Int16 Base di precisione dei dati numerici approssimati, dei dati numerici esatti, dei dati integer o dei dati in valuta. Per gli altri tipi di dati viene restituito NULL.
NUMERIC_SCALE Int32 Scala dei dati numerici approssimati, dei dati numerici esatti, dei dati integer o dei dati in valuta. Per gli altri tipi di dati viene restituito NULL.
DATETIME_PRECISION Int16 Codice di sottotipo per i tipi di dati SQL-92 datetime e interval. Per gli altri tipi di dati viene restituito NULL.
CHARACTER_SET_CATALOG String Se la colonna presenta un tipo di dati carattere o testo, viene restituito master, che indica il database in cui è posizionato il set di caratteri. Per gli altri tipi di dati viene restituito NULL.
CHARACTER_SET_SCHEMA String Viene restituito sempre NULL.
CHARACTER_SET_NAME String Se la colonna presenta un tipo di dati carattere o testo, viene restituito il nome univoco del set di caratteri. Per gli altri tipi di dati viene restituito NULL.
COLLATION_CATALOG String Se la colonna presenta un tipo di dati carattere o testo, viene restituito master, che indica il database in cui sono definite le regole di confronto. Negli altri casi la colonna è NULL.
IS_FILESTREAM String YES in caso di colonna con attributo FILESTREAM.

NO se la colonna non dispone dell'attributo FILESTREAM.
IS_SPARSE String YES in caso di colonna di tipo sparse.

NO se la colonna non è di tipo sparse.
IS_COLUMN_SET String YES in caso di colonna del set di colonne.

NO se la colonna non fa parte del set di colonne.

ColumnSetColumns (SQL Server 2008)

A partire da .NET Framework versione 3.5 SP1 e SQL Server 2008, è stata aggiunta la raccolta di schemi ColumnSetColumns per supportare colonne di tipo sparse. ColumnSetColumns non è supportato nelle versioni precedenti di .NET Framework e di SQL Server. La raccolta di schemi ColumnSetColumns restituisce lo schema per tutte le colonne di un set di colonne. Nella tabella seguente vengono descritte queste colonne.

ColumnName Tipo di dati Descrizione
TABLE_CATALOG String Catalogo della tabella.
TABLE_SCHEMA String Schema contenente la tabella.
TABLE_NAME String Nome tabella.
COLUMN_NAME String Nome colonna.
ORDINAL_POSITION Int32 Numero di identificazione della colonna.
COLUMN_DEFAULT String Il valore predefinito della colonna.
IS_NULLABLE String Impostazione relativa al supporto di valori Null nella colonna. Se la colonna supporta i valori NULL, restituisce YES. In caso contrario, viene restituito NO.
DATA_TYPE String Tipo di dati di sistema.
CHARACTER_MAXIMUM_LENGTH Int32 Lunghezza massima espressa in caratteri per i dati di tipo binario, carattere, text o image. Per gli altri tipi di dati viene restituito NULL.
CHARACTER_OCTET_LENGTH Int32 Lunghezza massima espressa in byte per i dati di tipo binario, carattere, text o image. Per gli altri tipi di dati viene restituito NULL.
NUMERIC_PRECISION Unsigned Byte Precisione dei dati numerici approssimati, dei dati numerici esatti, dei dati integer o dei dati in valuta. Per gli altri tipi di dati viene restituito NULL.
NUMERIC_PRECISION_RADIX Int16 Base di precisione dei dati numerici approssimati, dei dati numerici esatti, dei dati integer o dei dati in valuta. Per gli altri tipi di dati viene restituito NULL.
NUMERIC_SCALE Int32 Scala dei dati numerici approssimati, dei dati numerici esatti, dei dati integer o dei dati in valuta. Per gli altri tipi di dati viene restituito NULL.
DATETIME_PRECISION Int16 Codice di sottotipo per i tipi di dati SQL-92 datetime e interval. Per gli altri tipi di dati viene restituito NULL.
CHARACTER_SET_CATALOG String Se la colonna presenta un tipo di dati carattere o testo, viene restituito master, che indica il database in cui è posizionato il set di caratteri. Per gli altri tipi di dati viene restituito NULL.
CHARACTER_SET_SCHEMA String Viene restituito sempre NULL.
CHARACTER_SET_NAME String Se la colonna presenta un tipo di dati carattere o testo, viene restituito il nome univoco del set di caratteri. Per gli altri tipi di dati viene restituito NULL.
COLLATION_CATALOG String Se la colonna presenta un tipo di dati carattere o testo, viene restituito master, che indica il database in cui sono definite le regole di confronto. Negli altri casi la colonna è NULL.
IS_FILESTREAM String YES in caso di colonna con attributo FILESTREAM.

NO se la colonna non dispone dell'attributo FILESTREAM.
IS_SPARSE String YES in caso di colonna di tipo sparse.

NO se la colonna non è di tipo sparse.
IS_COLUMN_SET String YES in caso di colonna del set di colonne.

NO se la colonna non fa parte del set di colonne.

Utenti

ColumnName Tipo di dati Descrizione
uid Int16 ID utente, univoco all'interno del database. 1 corrisponde al proprietario del database.
user_name String Il nome utente o il nome del gruppo, univoco nel database.
createdate Data/Ora Data in cui è stato aggiunto l'account.
updatedate Data/Ora Data dell'ultima modifica dell'account.

Visualizzazioni

ColumnName Tipo di dati Descrizione
TABLE_CATALOG String Catalogo della visualizzazione.
TABLE_SCHEMA String Schema contenente la visualizzazione.
TABLE_NAME String Nome della vista.
CHECK_OPTION String Tipo di WITH CHECK OPTION. Se la visualizzazione originale è stata creata usando WITH CHECK OPTION, il tipo è CASCADE. In caso contrario restituisce NONE.
IS_UPDATABLE String Specifica se è possibile aggiornare la vista. Restituisce sempre NO.

ViewColumns

ColumnName Tipo di dati Descrizione
VIEW_CATALOG String Catalogo della visualizzazione.
VIEW_SCHEMA String Schema contenente la visualizzazione.
VIEW_NAME String Nome della vista.
TABLE_CATALOG String Catalogo della tabella associata a questa visualizzazione.
TABLE_SCHEMA String Il catalogo della tabella associata a questa visualizzazione.
TABLE_NAME String Il nome della tabella associata alla visualizzazione. Tabella di base.
COLUMN_NAME String Nome colonna.

UserDefinedTypes

ColumnName Tipo di dati Descrizione
assembly_name String Nome del file dell'assembly.
udt_name String Il nome della classe per l'assembly.
version_major Oggetto Il numero di versione principale.
version_minor Oggetto Numero di versione secondario.
version_build Oggetto Numero di build.
version_revision Oggetto Numero di revisione.
culture_info Oggetto Informazioni sulle impostazioni cultura associate all'UDT.
public_key Oggetto La chiave pubblica usata dall'assembly.
is_fixed_length Booleano Specifica se la lunghezza del tipo è sempre uguale a max_length.
max_length Int16 La lunghezza massima del tipo in byte.
Create_Date Data/Ora La data di creazione o di registrazione dell'assembly.
Permission_set_desc String Il nome descrittivo del set di autorizzazioni o del livello di sicurezza dell'assembly.

Vedi anche