sp_columns (Transact-SQL)
Restituisce le informazioni di colonna per gli oggetti specificati in cui è possibile eseguire query nell'ambiente corrente.
Sintassi
sp_columns [ @table_name = ] object [ , [ @table_owner = ] owner ]
[ , [ @table_qualifier = ] qualifier ]
[ , [ @column_name = ] column ]
[ , [ @ODBCVer = ] ODBCVer ]
Argomenti
[ @table_name=] object
Nome dell'oggetto utilizzato per restituire informazioni del catalogo. object può essere una tabella, una vista o un altro oggetto con colonne, ad esempio funzioni con valori di tabella. object è di tipo nvarchar(384) e non prevede alcun valore predefinito. La ricerca con caratteri jolly è supportata.[ @table_owner=] owner
Proprietario dell'oggetto utilizzato per restituire informazioni del catalogo. owner è di tipo nvarchar(384) e il valore predefinito è NULL. La ricerca con caratteri jolly è supportata. Se non si specifica owner, vengono applicate le regole di visibilità dell'oggetto predefinite del sistema DBMS sottostante.Se l'utente corrente è il proprietario di un oggetto con il nome specificato, vengono restituite le colonne di tale oggetto. Se owner viene omesso è l'utente corrente non è il proprietario di un oggetto con il nome object specificato, sp_columns esegue la ricerca di un oggetto con il nome object specificato che appartenga al proprietario del database. Se viene individuato, vengono restituite le colonne di tale oggetto.
[ @table_qualifier=] qualifier
Nome del qualificatore di oggetto. qualifier è di tipo sysname e il valore predefinito è NULL. Vari prodotti DBMS supportano i nomi di oggetti composti da tre parti. (qualifier**.owner.**name). In SQL Server questa colonna rappresenta il nome del database. In altri prodotti rappresenta il nome del server dell'ambiente di database dell'oggetto.[ @column_name=] column
Colonna singola utilizzata quando si desidera recuperare una sola colonna di informazioni del catalogo. column è di tipo nvarchar(384) e il valore predefinito è NULL. Se column viene omesso, vengono restituite tutte le colonne. In SQL Server, column rappresenta il nome di colonna utilizzato nella tabella syscolumns. La ricerca con caratteri jolly è supportata. Per ottenere la massima interoperabilità, è consigliabile che nel client di gateway siano utilizzati solo i caratteri jolly standard di SQL-92, ovvero i caratteri % e _.[ @ODBCVer=] ODBCVer
Versione di ODBC utilizzata. ODBCVer è di tipo int e il valore predefinito è 2, che indica ODBC versione 2. I valori validi sono 2 e 3. Per le differenze di comportamento tra le versioni 2 e 3, vedere la specifica relativa a SQLColumns di ODBC.
Valori restituiti
Nessuno
Set di risultati
La stored procedure di catalogo sp_columns corrisponde a SQLColumns in ODBC. I risultati restituiti vengono ordinati in base alle colonne TABLE_QUALIFIER, TABLE_OWNER e TABLE_NAME.
Nome colonna |
Tipo di dati |
Descrizione |
---|---|---|
TABLE_QUALIFIER |
sysname |
Nome del qualificatore di oggetto. Questo campo può essere NULL. |
TABLE_OWNER |
sysname |
Nome del proprietario dell'oggetto. Questo campo restituisce sempre un valore. |
TABLE_NAME |
sysname |
Nome dell'oggetto. Questo campo restituisce sempre un valore. |
COLUMN_NAME |
sysname |
Nome di ogni colonna restituita per la tabella specificata in TABLE_NAME. In questo campo viene sempre restituito un valore. |
DATA_TYPE |
smallint |
Codice integer per il tipo di dati ODBC. Se si tratta di un tipo di dati che non è possibile mappare a un tipo ODBC, il valore è NULL. Il nome del tipo di dati nativo viene restituito nella colonna TYPE_NAME. |
TYPE_NAME |
sysname |
Stringa che rappresenta un tipo di dati. Il DBMS sottostante presenta questo nome del tipo di dati. |
PRECISION |
int |
Numero di cifre significative. Il valore restituito per la colonna PRECISION è in base 10. |
LENGTH |
int |
Dimensioni di trasferimento dei dati.1 |
SCALE |
smallint |
Numero di cifre a destra del separatore decimale. |
RADIX |
smallint |
Base per i tipi di dati numerici. |
NULLABLE |
smallint |
Specifica se i valori Null sono o meno supportati: 1 = I valori Null sono supportati. 0 = I valori Null non sono supportati (NOT NULL). |
REMARKS |
varchar(254) |
Questo campo restituisce sempre NULL. |
COLUMN_DEF |
nvarchar(4000) |
Valore predefinito della colonna. A differenza di quanto avviene in SQL Server 2000, in SQL Server 2008 e SQL Server 2005 le espressioni SQL vengono decodificate e archiviate nei metadati del catalogo. La semantica dell'espressione decodificata è equivalente al testo originale, tuttavia non è garantito che la sintassi venga mantenuta. Gli spazi vuoti, ad esempio, vengono eliminati dall'espressione decodificata. Per ulteriori informazioni, vedere Differenze di funzionamento delle caratteristiche del Motore di database in SQL Server 2008 R2. |
SQL_DATA_TYPE |
smallint |
Valore del tipo di dati di SQL visualizzato nel campo TYPE del descrittore. Questa colonna corrisponde alla colonna DATA_TYPE, tranne per i tipi di dati datetime e interval SQL-92. In questa colonna viene sempre restituito un valore. |
SQL_DATETIME_SUB |
smallint |
Codice di sottotipo per i tipi di dati SQL-92 datetime e interval. Per gli altri tipi di dati questa colonna restituisce NULL. |
CHAR_OCTET_LENGTH |
int |
Lunghezza massima, espressa in byte, di una colonna di tipo carattere o integer. Per tutti gli altri tipi di dati in questa colonna viene restituito NULL. |
ORDINAL_POSITION |
int |
Posizione ordinale della colonna nell'oggetto. La prima colonna nell'oggetto è 1. In questa colonna viene sempre restituito un valore. |
IS_NULLABLE |
varchar(254) |
Impostazione relativa al supporto di valori Null nella colonna dell'oggetto. Per determinare il supporto di valori Null vengono seguite le regole ISO. In un sistema DBMS conforme a ISO SQL non vengono restituite stringhe vuote. YES = La colonna ammette valori Null. NO = La colonna non ammette valori Null. Quando non è noto se i valori Null sono supportati, in questa colonna viene restituita una stringa di lunghezza zero. Il valore restituito per questa colonna è diverso dal valore restituito per la colonna NULLABLE. |
SS_DATA_TYPE |
tinyint |
Tipo di dati SQL Server utilizzato dalle stored procedure estese. Per ulteriori informazioni, vedere Tipi di dati (Transact-SQL). |
1 Per ulteriori informazioni, vedere la documentazione di Microsoft ODBC.
Autorizzazioni
È necessario disporre dell'autorizzazione SELECT per lo schema.
Osservazioni
sp_columns soddisfa i requisiti per gli identificatori delimitati. Per ulteriori informazioni, vedere Identificatori delimitati (Motore di database).
Esempi
Nell'esempio seguente vengono restituite informazioni sulle colonne della tabella specificata.
USE AdventureWorks2008R2;
GO
EXEC sp_columns @table_name = N'Department',
@table_owner = N'HumanResources';