En SQL Server, puede usar SQL_VARIANT_PROPERTY()
función para devolver información de tipo de datos base de una sql_variant valor.
La función acepta dos argumentos:el sql_variant valor y la propiedad para la cual se debe proporcionar información.
Ejemplo 1:uso básico
Aquí hay un ejemplo que demuestra el concepto básico y el uso.
DECLARE @var sql_variant = 'Hey!'; SELECT SQL_VARIANT_PROPERTY(@var, 'BaseType') AS BaseType;
Resultado:
+------------+ | BaseType | |------------| | varchar | +------------+
En este caso, el tipo base es varchar .
Esto es lo que sucede si cambio el valor a un tipo diferente:
DECLARE @var sql_variant = $1.50; SELECT SQL_VARIANT_PROPERTY(@var, 'BaseType') AS BaseType;
Resultado:
+------------+ | BaseType | |------------| | money | +------------+
Esta vez el tipo base es dinero .
Ejemplo 2:otras propiedades
Al escribir estas líneas, hay seis argumentos posibles para esta función. En otras palabras, puede obtener información sobre seis propiedades diferentes del valor pasado.
Aquí hay un ejemplo que usa los seis:
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;
Resultado:
+------------+-------------+---------+--------------+-------------+-------------+ | BaseType | Precision | Scale | TotalBytes | Collation | MaxLength | |------------+-------------+---------+--------------+-------------+-------------| | datetime2 | 27 | 7 | 11 | NULL | 8 | +------------+-------------+---------+--------------+-------------+-------------+