Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Aplica a:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Sistema de Plataforma de Analítica (PDW)
Base de datos SQL en Microsoft Fabric
Devuelve el tipo de datos base y otra información sobre un valor sql_variant.
Convenciones de sintaxis de Transact-SQL
Syntax
SQL_VARIANT_PROPERTY ( expression , property )
Note
El grupo de SQL sin servidor no admite esta sintaxis en Azure Synapse Analytics.
Arguments
expression
Es una expresión de tipo sql_variant.
property
Contiene el nombre de la propiedad sql_variant para la que se proporciona la información.
property es varchar( 128 ) y puede ser cualquiera de los siguientes valores:
| Value | Description | Tipo base de sql_variant devuelto |
|---|---|---|
| BaseType | Tipo de datos de SQL Server, como: bigint binary bit char date datetime datetime2 datetimeoffset decimal float int money nchar numeric nvarchar real smalldatetime smallint smallmoney time tinyint uniqueidentifier varbinary varchar |
sysname NULL = La entrada no es válida. |
| Precision | Número de dígitos del tipo de datos base numérico: fecha = 10 Fechatiempo = 23 fechatiempo2 = 27 datetime2 (s) = 19 cuando s = 0, de lo contrario s + 20 fechatiempodespés = 34 datetimeoffset (s) = 26 cuando s = 0, de lo contrario s + 27 smalldatetime = 16 tiempo = 16 time (s) = 8 cuando s = 0, de lo contrario s + 9 flotador = 53 real = 24 decimal y numeric = 18 decimal (p,s) y numeric (p,s) = p Dinero = 19 smallmoney = 10 bigint = 19 Int = 10 smallint = 5 tinyint = 3 bit = 1 Los demás tipos = 0 |
int NULL = La entrada no es válida. |
| Scale | Número de dígitos a la derecha del separador decimal del tipo de datos base numérico: decimal y numeric = 0 decimal (p,s) y numeric (p,s) = s money y smallmoney = 4 Fecha Hora = 3 fechatiempo2 = 7 DateTime2 (S) = S (0 - 7) fechatiempodesprazado = 7 FechatiempoDesplazamiento (S) = S (0 - 7) tiempo = 7 Tiempo (S) = S (0 - 7) Los demás tipos = 0 |
int NULL = La entrada no es válida. |
| TotalBytes | Número de bytes necesario para contener los metadatos y los datos del valor. Esta información puede resultar útil al comprobar el tamaño máximo de los datos en una columna sql_variant. Si el valor es superior a 900, se produce un error en la creación del índice. |
int NULL = La entrada no es válida. |
| Collation | Representa la intercalación del valor concreto de sql_variant. |
sysname NULL = La entrada no es válida. |
| MaxLength | Longitud máxima del tipo de datos, en bytes. Por ejemplo, MaxLength de nvarchar( 50 ) es 100 y MaxLength de int, 4. |
int NULL = La entrada no es válida. |
Tipos de valor devuelto
sql_variant
Examples
A. Usar un tipo de datos sql_variant en una tabla
En el siguiente ejemplo se recupera la información de SQL_VARIANT_PROPERTY relativa al valor de colA46279.1, donde colB =1689, siempre que tableA tenga colA de tipo sql_variant y colB.
CREATE TABLE tableA(colA sql_variant, colB int)
INSERT INTO tableA values ( cast (46279.1 as decimal(8,2)), 1689)
SELECT SQL_VARIANT_PROPERTY(colA,'BaseType') AS 'Base Type',
SQL_VARIANT_PROPERTY(colA,'Precision') AS 'Precision',
SQL_VARIANT_PROPERTY(colA,'Scale') AS 'Scale'
FROM tableA
WHERE colB = 1689
Este es el conjunto de resultados. Tenga en cuenta que cada uno de estos tres valores es sql_variant.
Base Type Precision Scale
--------- --------- -----
decimal 8 2
(1 row(s) affected)
B. Usar un tipo de datos sql_variant como una variable
En el siguiente ejemplo se recupera información de SQL_VARIANT_PROPERTY sobre una variable denominada @v1.
DECLARE @v1 sql_variant;
SET @v1 = 'ABC';
SELECT @v1;
SELECT SQL_VARIANT_PROPERTY(@v1, 'BaseType');
SELECT SQL_VARIANT_PROPERTY(@v1, 'MaxLength');