SQL_VARIANT_PROPERTY (Transact-SQL)

Restituisce il tipo di dati di base e altre informazioni su un valore di tipo sql_variant.

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

Sintassi

SQL_VARIANT_PROPERTY ( expression , property )

Argomenti

  • expression
    Espressione di tipo sql_variant.

  • property
    Contiene il nome della proprietà sql_variant per la quale è necessario fornire informazioni. property è varchar(128). I valori possibili sono i seguenti.

    Valore

    Descrizione

    Tipo di base di sql_variant restituito

    BaseType

    Tipo di dati di SQL Server, ad esempio:

    bigint

    binary

    char

    date

    datetime

    datetime2

    datetimeoffset

    decimal

    float

    int

    money

    nchar

    numeric

    nvarchar

    real

    smalldatetime

    smallint

    smallmoney

    time

    tinyint

    uniqueidentifier

    varbinary

    varchar

    sysname

    NULL = input non valido.

    Precisione

    Numero di cifre del tipo di dati numerici di base:

    datetime = 23

    smalldatetime = 16

    float = 53

    real = 24

    decimal (p,s) e numeric (p,s) = p

    money = 19

    smallmoney = 10

    bigint = 19

    int = 10

    smallint = 5

    tinyint = 3

    bit = 1

    Tutti gli altri tipi = 0

    int

    NULL = input non valido.

    Scala

    Numero di cifre a destra del separatore decimale con tipo di base numerico:

    decimal (p,s) e numeric (p,s) = s

    money e smallmoney = 4

    datetime = 3

    Tutti gli altri tipi = 0

    int

    NULL = Input non valido.

    TotalBytes

    Numero di byte necessari per l'archiviazione sia dei metadati che dei dati del valore. Questo valore risulta utile per verificare le dimensioni massime dei dati in una colonna di tipo sql_variant. Se il valore è maggiore di 900, la creazione dell'indice genera un errore.

    int

    NULL = Input non valido.

    Collation

    Regole di confronto del valore di tipo sql_variant specifico.

    sysname

    NULL = Input non valido.

    MaxLength

    Lunghezza massima del tipo di dati espressa in byte. Ad esempio, MaxLength di tipo nvarchar(50) è uguale a 100, mentre MaxLength di tipo int è uguale a 4.

    int

    NULL = Input non valido.

Tipi restituiti

sql_variant

Esempi

Nell'esempio seguente vengono recuperate le informazioni di SQL_VARIANT_PROPERTY relative al valore colA 46279.1, dove colB =1689, partendo dal presupposto che tableA include colA di tipo sql_variant e colB.

CREATE   TABLE tableA(colA sql_variant, colB int)
INSERT INTO tableA values ( cast (46279.1 as decimal(8,2)), 1689)
SELECT   SQL_VARIANT_PROPERTY(colA,'BaseType') AS 'Base Type',
         SQL_VARIANT_PROPERTY(colA,'Precision') AS 'Precision',
         SQL_VARIANT_PROPERTY(colA,'Scale') AS 'Scale'
FROM      tableA
WHERE      colB = 1689

Set di risultati: si noti che tutti e tre i valori sono di tipo sql_variant.

Base Type    Precision    Scale
---------    ---------    -----
decimal      8           2

(1 row(s) affected)

Vedere anche

Riferimento

sql_variant (Transact-SQL)