SQL_VARIANT_PROPERTY (Transact-SQL)

Retorna o tipo de dados base e outras informações sobre um valor sql_variant.

Ícone de vínculo de tópico Convenções da sintaxe Transact-SQL

Sintaxe

SQL_VARIANT_PROPERTY ( expression , property )

Argumentos

  • expression
    É uma expressão do tipo sql_variant.

  • property
    Contém o nome da propriedade sql_variant cujas informações serão fornecidas. property é varchar(128), e pode ter qualquer um dos valores a seguir:

    Valor

    Descrição

    Tipo base de sql_variant retornado

    BaseType

    Tipo de dados do 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 = A entrada não é válida.

    Precision

    Número de dígitos do tipo de dados base numérico:

    datetime = 23

    smalldatetime = 16

    float = 53

    real = 24

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

    money = 19

    smallmoney = 10

    bigint = 19

    int = 10

    smallint = 5

    tinyint = 3

    bit = 1

    Todos os outros tipos = 0

    int

    NULL = A entrada não é válida.

    Scale

    Número de dígitos à direita do ponto decimal do tipo de dados base numérico:

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

    money e smallmoney = 4

    datetime = 3

    Todos os outros tipos = 0

    int

    NULL = A entrada não é válida.

    TotalBytes

    Número de bytes necessários para manter os metadados e os dados do valor. Essas informações seriam úteis na verificação do tamanho máximo dos dados em uma coluna sql_variant. Se o valor for maior que 900, a criação do índice falhará.

    int

    NULL = A entrada não é válida.

    Collation

    Representa o agrupamento do valor sql_variant em particular.

    sysname

    NULL = A entrada não é válida.

    MaxLength

    Comprimento máximo do tipo de dados, em bytes. Por exemplo, o MaxLength de nvarchar(50) é 100; o MaxLength de int é 4.

    int

    NULL = A entrada não é válida.

Tipos de retorno

sql_variant

Exemplos

O exemplo a seguir recupera informações SQL_VARIANT_PROPERTY sobre o valor de colA 46279.1, onde colB = 1689, supondo-se que tableA tenha colA do tipo sql_variant e 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

Aqui está o conjunto de resultados. Note que cada um desses três valores é um sql_variant.

Base Type    Precision    Scale
---------    ---------    -----
decimal      8           2

(1 row(s) affected)

Consulte também

Referência

sql_variant (Transact-SQL)