SQL_VARIANT_PROPERTY (Transact-SQL)
Renvoie le type de données de base et d'autres informations sur une valeur sql_variant.
Conventions 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.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)
Voir aussi
Référence
Autres ressources
Utilisation de données sql_variant