COLUMNPROPERTY (Transact-SQL)

Restituisce informazioni su una colonna o su un parametro di procedura.

Icona di collegamento a un argomentoConvenzioni della sintassi Transact-SQL

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

    NotaNota
    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. 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)