I SQL Server kan du använda SQL_VARIANT_PROPERTY()
funktion för att returnera basdatatypinformation från en sql_variant värde.
Funktionen accepterar två argument:sql_variant värde och den egendom för vilken information ska lämnas.
Exempel 1 – Grundläggande användning
Här är ett exempel som visar det grundläggande konceptet och användningen.
DECLARE @var sql_variant = 'Hey!'; SELECT SQL_VARIANT_PROPERTY(@var, 'BaseType') AS BaseType;
Resultat:
+------------+ | BaseType | |------------| | varchar | +------------+
I det här fallet är bastypen varchar .
Så här händer om jag ändrar värdet till en annan typ:
DECLARE @var sql_variant = $1.50; SELECT SQL_VARIANT_PROPERTY(@var, 'BaseType') AS BaseType;
Resultat:
+------------+ | BaseType | |------------| | money | +------------+
Den här gången är bastypen pengar .
Exempel 2 – Andra egenskaper
När detta skrivs finns det sex möjliga argument för denna funktion. Med andra ord kan du få information om sex olika egenskaper hos det godkända värdet.
Här är ett exempel som använder alla sex:
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 | +------------+-------------+---------+--------------+-------------+-------------+