SQL_VARIANT_PROPERTY (Transact-SQL)

Renvoie le type de données de base et d'autres informations sur une valeur sql_variant.

Icône Lien de rubriqueConventions de la syntaxe de Transact-SQL

Syntaxe

SQL_VARIANT_PROPERTY ( expression , property )

Arguments

expression

Expression de type sql_variant.

property

Nom de la propriété sql_variant dont les informations doivent être fournies. property est de type varchar(128), et peut prendre l'une des valeurs suivantes.

Valeur Description Type de base sql_variant renvoyé

BaseType

Type de données SQL Server 2005, tel que :

bigint

binary

char

decimal

float

int

money

nchar

numeric

nvarchar

real

smalldatetime

smallint

smallmoney

tinyint

uniqueidentifier

varbinary

varchar

sysname

NULL = Entrée non valide.

Precision

Nombre de chiffres du type de données numériques de base :

datetime = 23

smalldatetime = 16

float = 53

real = 24

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

money = 19

smallmoney = 10

bigint = 19

int = 10

smallint = 5

tinyint = 3

bit = 1

Tous les autres types = 0

int

NULL = Entrée non valide.

Échelle

Nombre de chiffres décimaux après la virgule (point) dans le type de données numériques de base :

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

money et smallmoney = 4

datetime = 3

Tous les autres types = 0

int

NULL = Entrée non valide.

TotalBytes

Nombre d'octets requis pour conserver les métadonnées et les données de la valeur. Ces informations permettent de vérifier la taille maximale des données dans une colonne sql_variant. Si cette valeur est supérieure à 900, la création de l'index échoue.

int

NULL = Entrée non valide.

Collation

Classement de la valeur sql_variant particulière.

sysname

NULL = Entrée non valide.

MaxLength

Longueur maximale du type de données (en octets). Par exemple, MaxLength de nvarchar(50) est égal à 100, MaxLength de int est égal à 4.

int

NULL = Entrée non valide.

Type des valeurs renvoyées

sql_variant

Exemples

L'exemple suivant extrait des informations SQL_VARIANT_PROPERTY relatives à la valeur colA``46279.1colB =1689, étant donné que tableA a la valeur colA de type sql_variant et 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

Voici l'ensemble des résultats. Notez que chacune de ces trois valeurs est de type sql_variant.

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

(1 row(s) affected)

Voir aussi

Référence

sql_variant (Transact-SQL)

Autres ressources

Utilisation de données sql_variant

Aide et Informations

Assistance sur SQL Server 2005