В SQL Server можете да използвате SQL_VARIANT_PROPERTY()
функция за връщане на информация за основния тип данни от sql_variant стойност.
Функцията приема два аргумента:sql_variant стойност и свойството, за което трябва да се предостави информация.
Пример 1 – Основна употреба
Ето пример, който демонстрира основната концепция и употреба.
DECLARE @var sql_variant = 'Hey!'; SELECT SQL_VARIANT_PROPERTY(@var, 'BaseType') AS BaseType;
Резултат:
+------------+ | BaseType | |------------| | varchar | +------------+
В този случай основният тип е varchar .
Ето какво се случва, ако променя стойността на различен тип:
DECLARE @var sql_variant = $1.50; SELECT SQL_VARIANT_PROPERTY(@var, 'BaseType') AS BaseType;
Резултат:
+------------+ | BaseType | |------------| | money | +------------+
Този път основният тип е пари .
Пример 2 – Други свойства
Към момента на писането има шест възможни аргумента за тази функция. С други думи, можете да получите информация за шест различни свойства на предадената стойност.
Ето пример, който използва всичките шест:
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;
Резултат:
+------------+-------------+---------+--------------+-------------+-------------+ | BaseType | Precision | Scale | TotalBytes | Collation | MaxLength | |------------+-------------+---------+--------------+-------------+-------------| | datetime2 | 27 | 7 | 11 | NULL | 8 | +------------+-------------+---------+--------------+-------------+-------------+