SQL_VARIANT_PROPERTY (Transact-SQL)

Devuelve el tipo de datos base y otra información sobre un valor sql_variant.

Icono de vínculo a temasConvenciones de sintaxis de Transact-SQL

Sintaxis

SQL_VARIANT_PROPERTY ( expression , property )

Argumentos

  • 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 de tipo varchar(128) y puede tener cualquiera de los valores siguientes.

    Valor

    Descripción

    Tipo base de sql_variant devuelto

    BaseType

    Tipo de datos de SQL Server, como:

    bigint

    binary

    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:

    datetime = 23

    smalldatetime = 16

    float = 53

    real = 24

    decimal (p,s) y numeric (p,s) = p

    money = 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 (p,s) y numeric (p,s) = s

    money y smallmoney = 4

    datetime = 3

    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 producirá 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, MaxLength de int es 4.

    int

    NULL = La entrada no es válida.

Tipos de valor devueltos

sql_variant

Ejemplos

En el ejemplo siguiente se recupera la información de SQL_VARIANT_PROPERTY para el valor 46279.1 de colA, 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

Éste 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)

Vea también

Referencia

Conceptos