In SQL Server puoi utilizzare SQL_VARIANT_PROPERTY()
funzione per restituire informazioni sul tipo di dati di base da una sql_variant valore.
La funzione accetta due argomenti:sql_variant valore e la proprietà per la quale devono essere fornite le informazioni.
Esempio 1 – Utilizzo di base
Ecco un esempio che illustra il concetto e l'utilizzo di base.
DECLARE @var sql_variant = 'Hey!'; SELECT SQL_VARIANT_PROPERTY(@var, 'BaseType') AS BaseType;
Risultato:
+------------+ | BaseType | |------------| | varchar | +------------+
In questo caso, il tipo di base è varchar .
Ecco cosa succede se cambio il valore in un tipo diverso:
DECLARE @var sql_variant = $1.50; SELECT SQL_VARIANT_PROPERTY(@var, 'BaseType') AS BaseType;
Risultato:
+------------+ | BaseType | |------------| | money | +------------+
Questa volta il tipo di base è denaro .
Esempio 2 – Altre proprietà
Al momento della stesura di questo articolo, ci sono sei possibili argomenti per questa funzione. In altre parole, puoi ottenere informazioni su sei diverse proprietà del valore passato.
Ecco un esempio che usa tutti e sei:
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;
Risultato:
+------------+-------------+---------+--------------+-------------+-------------+ | BaseType | Precision | Scale | TotalBytes | Collation | MaxLength | |------------+-------------+---------+--------------+-------------+-------------| | datetime2 | 27 | 7 | 11 | NULL | 8 | +------------+-------------+---------+--------------+-------------+-------------+