V SQL Server můžete použít SQL_VARIANT_PROPERTY()
funkce k vrácení informací o základním datovém typu z sql_variant hodnotu.
Funkce přijímá dva argumenty:sql_variant hodnotu a vlastnost, pro kterou mají být informace poskytnuty.
Příklad 1 – Základní použití
Zde je příklad, který demonstruje základní koncept a použití.
DECLARE @var sql_variant = 'Hey!'; SELECT SQL_VARIANT_PROPERTY(@var, 'BaseType') AS BaseType;
Výsledek:
+------------+ | BaseType | |------------| | varchar | +------------+
V tomto případě je základním typem varchar .
Co se stane, když změním hodnotu na jiný typ:
DECLARE @var sql_variant = $1.50; SELECT SQL_VARIANT_PROPERTY(@var, 'BaseType') AS BaseType;
Výsledek:
+------------+ | BaseType | |------------| | money | +------------+
Tentokrát jsou základním typem peníze .
Příklad 2 – Jiné vlastnosti
V době psaní tohoto článku existuje šest možných argumentů pro tuto funkci. Jinými slovy, můžete získat informace o šesti různých vlastnostech předávané hodnoty.
Zde je příklad, který používá všech šest:
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;
Výsledek:
+------------+-------------+---------+--------------+-------------+-------------+ | BaseType | Precision | Scale | TotalBytes | Collation | MaxLength | |------------+-------------+---------+--------------+-------------+-------------| | datetime2 | 27 | 7 | 11 | NULL | 8 | +------------+-------------+---------+--------------+-------------+-------------+