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 argomentoConvenzioni 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 è di tipo varchar(128). I possibili valori sono i seguenti.

Valore Descrizione Tipo di base di sql_variant restituito

BaseType

Tipo di dati di SQL Server 2005, ad esempio:

bigint

binary

char

decimal

float

int

money

nchar

numeric

nvarchar

real

smalldatetime

smallint

smallmoney

tinyint

uniqueidentifier

varbinary

varchar

sysname

NULL = input non valido.

Precision

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.

Scale

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)

Altre risorse

Utilizzo di dati sql_variant

Guida in linea e informazioni

Assistenza su SQL Server 2005