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.
Se aplica a:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Base de datos de Azure 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');