COLUMNPROPERTY (Transact-SQL)
Restituisce informazioni su una colonna o un parametro.
Convenzioni della sintassi Transact-SQL
Sintassi
COLUMNPROPERTY ( id , column , property )
Argomenti
id
Espressione che include l'identificatore (ID) di tabella o procedura.column
Espressione che include il nome di colonna o di parametro.property
Espressione che indica le informazioni da restituire per id. I possibili valori sono i seguenti:Valore
Descrizione
Valore restituito
AllowsNull
Ammette valori Null.
1 = TRUE
0 = FALSE
NULL = input non valido.
ColumnId
Valore di ID di colonna corrispondente a sys.columns.column_id.
ID colonna
[!NOTA]
Quando si eseguono query su più colonne, potrebbero apparire degli spazi vuoti nella sequenza dei valori di ID di colonna.
FullTextTypeColumn
TYPE COLUMN nella tabella in cui sono contenute le informazioni sui tipi di documenti per column.
ID di TYPE COLUMN full-text per la colonna passata come secondo parametro della proprietà.
IsComputed
La colonna è una colonna calcolata.
1 = TRUE
0 = FALSE
NULL = input non valido.
IsCursorType
Il parametro di procedura è di tipo CURSOR.
1 = TRUE
0 = FALSE
NULL = input non valido.
IsDeterministic
La colonna è tipo deterministico. Questa proprietà viene applicata solo alle colonne calcolate e alle colonne di una vista.
1 = TRUE
0 = FALSE
NULL = input non valido. Non si tratta di una colonna calcolata o di una colonna di vista.
IsFulltextIndexed
La colonna è stata registrata per un'indicizzazione full-text.
1 = TRUE
0 = FALSE
NULL = input non valido.
IsIdentity
La colonna utilizza la proprietà IDENTITY.
1 = TRUE
0 = FALSE
NULL = Input non valido.
IsIdNotForRepl
La colonna controlla l'impostazione IDENTITY_INSERT.
1 = TRUE
0 = FALSE
NULL = input non valido.
IsIndexable
La colonna può essere indicizzata.
1 = TRUE
0 = FALSE
NULL = input non valido.
IsOutParam
Il parametro di procedura è di output.
1 = TRUE
NULL = input non valido.
IsPrecise
La colonna è precisa. Questa proprietà viene applicata solo a colonne di tipo deterministico.
1 = TRUE
0 = FALSE NULL = input non valido. Non si tratta di una colonna di tipo deterministico.
IsRowGuidCol
La colonna è di tipo uniqueidentifier e viene definita con la proprietà ROWGUIDCOL.
1 = TRUE
0 = FALSE
NULL = input non valido.
IsSystemVerified
Le proprietà di determinismo e precisione della colonna possono essere verificate dal Motore di database. Questa proprietà viene applicata solo alle colonne calcolate e alle colonne di viste.
1 = TRUE
0 = FALSE
NULL = input non valido.
IsXmlIndexable
La colonna XML può essere utilizzata in un indice XML
1 = TRUE
0 = FALSE
NULL = input non valido.
Precision
Lunghezza del tipo di dati della colonna o del parametro.
Lunghezza del tipo di dati specificato per la colonna.
-1 = xml o tipi di dati per valori di grandi dimensioni
NULL = input non valido.
Scale
Scala del tipo di dati della colonna o del parametro.
Valore della scala
NULL = input non valido.
StatisticalSemantics
La colonna è abilitata per l'indicizzazione semantica.
1 = TRUE
0 = FALSE
SystemDataAccess
La colonna deriva da una funzione che accede ai dati nei cataloghi di sistema o nelle tabelle virtuali di sistema di SQL Server. Questa proprietà è applicabile solo alle colonne calcolate e alle colonne di viste.
1 = TRUE (accesso di sola lettura).
0 = FALSE
NULL = input non valido.
UserDataAccess
La colonna deriva da una funzione che accede ai dati nelle tabelle utente, incluse le tabelle temporanee e le viste, archiviate nell'istanza locale di SQL Server. Questa proprietà è applicabile solo alle colonne calcolate e alle colonne di viste.
1 = TRUE (accesso di sola lettura).
0 = FALSE
NULL = input non valido.
UsesAnsiTrim
In fase di creazione della tabella l'opzione ANSI_PADDING era impostata su ON. Questa proprietà viene applicata solo alle colonne o ai parametri di tipo char o varchar.
1= TRUE
0= FALSE
NULL = input non valido.
IsSparse
La colonna è una colonna di tipo sparse. Per ulteriori informazioni, vedere Utilizzo di colonne di tipo sparse.
1= TRUE
0= FALSE
NULL = Input non valido.
IsColumnSet
La colonna è un set di colonne. Per ulteriori informazioni, vedere Utilizzare set di colonne.
1= TRUE
0= FALSE
NULL = Input non valido.
Tipi restituiti
int
Eccezioni
Restituisce NULL in caso di errore o se un chiamante non dispone dell'autorizzazione necessaria per visualizzare l'oggetto.
Un utente può visualizzare esclusivamente i metadati delle entità a sicurezza diretta di cui è proprietario o per cui ha ricevuto un'autorizzazione. Di conseguenza, le funzioni predefinite di creazione dei metadati come COLUMNPROPERTY possono restituire NULL se l'utente non dispone di alcuna autorizzazione per l'oggetto. Per ulteriori informazioni, vedere Configurazione della visibilità dei metadati.
Osservazioni
Durante il controllo della proprietà deterministica di una colonna, è innanzitutto necessario verificare se la colonna è calcolata. IsDeterministic restituisce NULL per colonne non calcolate. È possibile specificare le colonne calcolate come colonne di indice.
Esempi
Nell'esempio seguente viene restituita la lunghezza della colonna LastName.
USE AdventureWorks2012;
GO
SELECT COLUMNPROPERTY( OBJECT_ID('Person.Person'),'LastName','PRECISION')AS 'Column Length';
GO
Set di risultati:
Column Length
-------------
50