Compartir a través de


SQL_VARIANT_PROPERTY (Transact-SQL)

Aplica a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsSistema 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');  

Véase también

sql_variant (Transact-SQL)