sp_columns (Transact-SQL)

Vengono restituite le informazioni di colonna per gli oggetti specificati per cui è possibile eseguire una query nell'ambiente corrente.

Icona di collegamento a un argomento Convenzioni della sintassi Transact-SQL

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 sul catalogo. object può essere una tabella, una vista o un altro oggetto che dispone di colonne quali le funzioni con valori di tabella. object è di tipo nvarchar(384) e non prevede alcun valore predefinito. I criteri di ricerca con caratteri jolly sono supportati.

  • [ @table_owner=] owner
    Proprietario dell'oggetto utilizzato per restituire informazioni sul catalogo. owner è di tipo nvarchar(384) e il valore predefinito è NULL. I criteri di ricerca con caratteri jolly sono supportati. Se non si specifica il parametro 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 il parametro owner non è specificato e l'utente corrente non è il proprietario di un oggetto con il parametro object specificato, tramite sp_columns viene eseguita la ricerca di un oggetto con il parametro object specificato che appartenga al proprietario del database. Se viene individuato, vengono restituite le colonne di tale oggetto.

  • [ @table_qualifier=] qualifier
    Nome del qualificatore dell'oggetto. qualifier è di tipo sysname e il valore predefinito è NULL. Vari prodotti DBMS supportano nomi di oggetti composti da tre parti, ovvero qualifier**.owner.**name. In SQL Server questa colonna rappresenta il nome del database. In alcuni 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 di 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. Le ricerche con caratteri jolly sono supportate. 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 dell'oggetto. Questo campo può essere NULL.

TABLE_OWNER

sysname

Nome del proprietario dell'oggetto. In questo campo viene sempre restituito un valore.

TABLE_NAME

sysname

Nome dell'oggetto. In questo campo viene sempre restituito un valore.

COLUMN_NAME

sysname

Nome di ogni colonna dell'oggetto TABLE_NAME restituito. 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 di cui non è possibile eseguire il mapping 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)

In questo campo viene sempre restituito NULL.

COLUMN_DEF

nvarchar(4000)

Valore predefinito della colonna.

SQL_DATA_TYPE

smallint

Valore del tipo di dati 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)

Supporto di valori Null della 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 del database.

Esempi

Nell'esempio seguente vengono restituite informazioni sulle colonne della tabella specificata.

USE AdventureWorks2012;
GO
EXEC sp_columns @table_name = N'Department',
   @table_owner = N'HumanResources';

Vedere anche

Riferimento

sp_tables (Transact-SQL)

Stored procedure di catalogo (Transact-SQL)

Stored procedure di sistema (Transact-SQL)