Condividi tramite


COLUMNS (Transact-SQL)

Restituisce una riga per ogni colonna accessibile dall'utente corrente nel database corrente.

Per recuperare informazioni da queste viste, specificare il nome completo di INFORMATION_SCHEMA.view_name.

Nome colonna

Tipo di dati

Descrizione

TABLE_CATALOG

nvarchar(128)

Qualificatore della tabella.

TABLE_SCHEMA

nvarchar(128)

Nome dello schema che contiene la tabella.

Nota importanteImportante
Non utilizzare viste INFORMATION_SCHEMA per determinare lo schema di un oggetto. L'unica modalità affidabile per cercare lo schema di un oggetto consiste nell'eseguire una query sulla vista del catalogo sys.objects o nell'utilizzare la funzione OBJECT_SCHEMA_NAME.

TABLE_NAME

nvarchar(128)

Nome della tabella.

COLUMN_NAME

nvarchar(128)

Nome della colonna.

ORDINAL_POSITION

int

Numero di identificazione della colonna.

COLUMN_DEFAULT

nvarchar(4000)

Valore predefinito della colonna.

A differenza di quanto avviene in SQL Server 2000, in SQL Server 2008 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 funzionalità del Motore di database in SQL Server 2008.

IS_NULLABLE

varchar(3)

Impostazione relativa al supporto di valori Null nella colonna. Se nella colonna sono consentiti valori NULL, in questa colonna viene restituito YES. In caso contrario, viene restituito NO.

DATA_TYPE

nvarchar(128)

Tipo di dati fornito dal sistema.

CHARACTER_MAXIMUM_LENGTH

int

Lunghezza massima espressa in caratteri per i dati di tipo binary, character, text o image.

-1 per i dati di tipo xml e di tipi per valori di grandi dimensioni. Per gli altri tipi di dati viene restituito NULL. Per ulteriori informazioni, vedere Tipi di dati (Transact-SQL).

CHARACTER_OCTET_LENGTH

int

Lunghezza massima espressa in byte per i dati di tipo binary, character, text o image.

-1 per i dati di tipo xml e di tipi per valori di grandi dimensioni. Per gli altri tipi di dati viene restituito NULL.

NUMERIC_PRECISION

tinyint

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

smallint

Radice 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

int

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

smallint

Codice di sottotipo per il tipo di dati datetime e il tipo di dati interval ISO. Per gli altri tipi di dati viene restituito NULL.

CHARACTER_SET_CATALOG

nvarchar(128)

Restituisce master per indicare il database che include il set di caratteri se la colonna contiene dati di tipo carattere o text. Per gli altri tipi di dati viene restituito NULL.

CHARACTER_SET_SCHEMA

nvarchar(128)

Restituisce sempre NULL.

CHARACTER_SET_NAME

nvarchar(128)

Restituisce il nome univoco del set di caratteri se la colonna contiene dati di tipo character o text. Per gli altri tipi di dati viene restituito NULL.

COLLATION_CATALOG

nvarchar(128)

Restituisce sempre NULL.

COLLATION_SCHEMA

nvarchar(128)

Restituisce sempre NULL.

COLLATION_NAME

nvarchar(128)

Restituisce il nome univoco delle regole di confronto se la colonna contiene dati di tipo character o text. Per gli altri tipi di dati viene restituito NULL.

DOMAIN_CATALOG

nvarchar(128)

Se il tipo di dati della colonna è alias, restituisce il nome del database in cui è stato creato il tipo di dati definito dall'utente. Per gli altri tipi di dati viene restituito NULL.

DOMAIN_SCHEMA

nvarchar(128)

Restituisce il nome dello schema del tipo di dati definito dall'utente se la colonna contiene un tipo di dati definito dall'utente. Per gli altri tipi di dati viene restituito NULL.

Nota importanteImportante
Non utilizzare le viste INFORMATION_SCHEMA per determinare lo schema di un tipo di dati. L'unica modalità affidabile per cercare lo schema di un tipo consiste nell'utilizzare la funzione TYPEPROPERTY.

DOMAIN_NAME

nvarchar(128)

Restituisce il nome del tipo di dati definito dall'utente se la colonna contiene un tipo di dati definito dall'utente. Per gli altri tipi di dati viene restituito NULL.

Osservazioni

La colonna ORDINAL_POSITION della vista INFORMATION_SCHEMA.COLUMNS non è compatibile con lo schema di bit di colonne restituite dalla funzione COLUMNS_UPDATED. Per ottenere uno schema di bit compatibile con la funzione COLUMNS_UPDATED, è necessario fare riferimento alla proprietà ColumnID della funzione di sistema COLUMNPROPERTY quando si esegue una query sulla vista INFORMATION_SCHEMA.COLUMNS. Ad esempio:

USE AdventureWorks;
GO

SELECT COLUMN_NAME, COLUMNPROPERTY(OBJECT_ID(TABLE_SCHEMA + '.' + TABLE_NAME), COLUMN_NAME, 'ColumnID') AS COLUMN_ID
FROM AdventureWorks.INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'Employee';

Esempi

Nell'esempio seguente vengono restituite le colonne in tutte le tabelle e viste del database che non possono avere un valore NULL.

USE AdventureWorks;
GO

SELECT TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME, DATA_TYPE
FROM INFORMATION_SCHEMA.COLUMNS
WHERE IS_NULLABLE = 'NO'
ORDER BY DATA_TYPE;