COLUMNPROPERTY (Transact-SQL)
Restituisce informazioni su una colonna o su un parametro di procedura.
Sintassi
COLUMNPROPERTY ( id , column , property )
Argomenti
id
Espressione che include l'identificatore (ID) di tabella o di 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
NotaQuando 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. Se si specifica IDENTITY NOT FOR REPLICATION, l'impostazione IDENTITY_INSERT non viene controllata.
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.
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 Utilizzo di 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.
In SQL Server 2008 un utente può visualizzare esclusivamente i metadati delle entità a protezione 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 e Risoluzione dei problemi relativi alla 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 AdventureWorks;
GO
SELECT COLUMNPROPERTY( OBJECT_ID('Person.Contact'),'LastName','PRECISION')AS 'Column Length';
GO
Set di risultati:
Column Length
-------------
50
(1 row(s) affected)
Vedere anche