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, tel que :

    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 = 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 colA46279.1 où colB =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)