Esporta (0) Stampa
Espandi tutto
Espandi Riduci a icona

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


SQL_VARIANT_PROPERTY ( expression , property )

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.

sql_variant

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)

Aggiunte alla community

AGGIUNGI
Mostra:
© 2014 Microsoft