I SQL Server kan du bruge SQL_VARIANT_PROPERTY()
funktion til at returnere basisdatatypeoplysninger fra en sql_variant værdi.
Funktionen accepterer to argumenter:sql_varianten værdi, og den ejendom, der skal gives oplysninger om.
Eksempel 1 – Grundlæggende brug
Her er et eksempel, der demonstrerer det grundlæggende koncept og brugen.
DECLARE @var sql_variant = 'Hey!'; SELECT SQL_VARIANT_PROPERTY(@var, 'BaseType') AS BaseType;
Resultat:
+------------+ | BaseType | |------------| | varchar | +------------+
I dette tilfælde er basistypen varchar .
Her er, hvad der sker, hvis jeg ændrer værdien til en anden type:
DECLARE @var sql_variant = $1.50; SELECT SQL_VARIANT_PROPERTY(@var, 'BaseType') AS BaseType;
Resultat:
+------------+ | BaseType | |------------| | money | +------------+
Denne gang er basistypen penge .
Eksempel 2 – Andre egenskaber
Når dette skrives, er der seks mulige argumenter for denne funktion. Med andre ord kan du få information om seks forskellige egenskaber ved den beståede værdi.
Her er et eksempel, der bruger alle seks:
DECLARE @var sql_variant = SYSDATETIME(); SELECT SQL_VARIANT_PROPERTY(@var, 'BaseType') AS BaseType, SQL_VARIANT_PROPERTY(@var, 'Precision') AS Precision, SQL_VARIANT_PROPERTY(@var, 'Scale') AS Scale, SQL_VARIANT_PROPERTY(@var, 'TotalBytes') AS TotalBytes, SQL_VARIANT_PROPERTY(@var, 'Collation') AS Collation, SQL_VARIANT_PROPERTY(@var, 'MaxLength') AS MaxLength;
Resultat:
+------------+-------------+---------+--------------+-------------+-------------+ | BaseType | Precision | Scale | TotalBytes | Collation | MaxLength | |------------+-------------+---------+--------------+-------------+-------------| | datetime2 | 27 | 7 | 11 | NULL | 8 | +------------+-------------+---------+--------------+-------------+-------------+