Поделиться через


SQL_VARIANT_PROPERTY (Transact-SQL)

Возвращает базовый тип данных и другие сведения о значении sql_variant.

Значок ссылки на раздел Синтаксические обозначения Transact-SQL

Синтаксис

SQL_VARIANT_PROPERTY ( expression , property )

Аргументы

  • expression
    Выражение типа sql_variant.

  • property
    Содержит имя свойства sql_variant, для которого будут предоставлены сведения. Аргумент property имеет тип varchar(128) и может принимать любое из следующих значений.

    Значение

    Описание

    Возвращаемый базовый тип sql_variant

    BaseType

    Тип данных SQL Server, например:

    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 = Введенные значения недопустимы.

    Точность

    Количество знаков числового базового типа данных:

    datetime = 23

    smalldatetime = 16

    float = 53

    real = 24

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

    money = 19

    smallmoney = 10

    bigint = 19

    int = 10

    smallint = 5

    tinyint = 3

    bit = 1

    Все остальные типы = 0

    int

    NULL = Введенные значения недопустимы.

    Масштаб

    Количество знаков справа от десятичного разделителя числового базового типа данных:

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

    money и smallmoney = 4

    datetime = 3

    все остальные типы = 0

    int

    NULL = Введенные значения недопустимы.

    TotalBytes

    Число байтов, необходимое для хранения данных и метаданных значения. Эта информация может быть полезной при проверке максимального размера данных в столбце sql_variant. Если значение превышает 900, создание индекса приведет к ошибке.

    int

    NULL = Введенные значения недопустимы.

    Collation

    Представляет параметры сортировки конкретного значения sql_variant.

    sysname

    NULL = Введенные значения недопустимы.

    MaxLength

    Максимальная длина типа данных, в байтах. Например, MaxLength nvarchar(50) равна 100, MaxLength int равна 4.

    int

    NULL = Введенные значения недопустимы.

Типы возвращаемых данных

sql_variant

Примеры

В следующем примере извлекаются данные SQL_VARIANT_PROPERTY о значении colA 46279.1, где colB =1689, при условии, что tableA имеет colA типа sql_variant и 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

Ниже приводится результирующий набор. Обратите внимание на то, что каждое из этих трех значений является sql_variant.

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

(1 row(s) affected)

См. также

Справочник

sql_variant (Transact-SQL)