Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Относится к:SQL Server
База данных SQL Azure
Управляемый экземпляр SQL Azure
Azure Synapse Analytics
Аналитическая платформа (PDW)
SQL база данных в Microsoft Fabric
Возвращает базовый тип данных и другие сведения о значении sql_variant.
Соглашения о синтаксисе Transact-SQL
Syntax
SQL_VARIANT_PROPERTY ( expression , property )
Note
Этот синтаксис не поддерживается бессерверным пулом SQL в Azure Synapse Analytics.
Arguments
expression
Выражение типа sql_variant.
property
Содержит имя свойства sql_variant, для которого будут предоставлены сведения. Аргумент property имеет тип varchar(128) и может принимать одно из перечисленных ниже значений.
| Value | Description | Возвращаемый базовый тип sql_variant |
|---|---|---|
| BaseType | Тип данных SQL Server, например: 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 = Введенные значения недопустимы. |
| Precision | Количество знаков числового базового типа данных: дата = 10 datetime = 23 datetime2 = 27 datetime2 (s) = 19, когда s = 0, else s + 20 datetimeoffset = 34 datetimeoffset (s) = 26, когда s = 0, else s + 27 smalldatetime = 16 время = 16 time (s) = 8, когда s = 0, else s + 9 float = 53 real = 24 decimal и numeric = 18 decimal (p,s) и numeric (p,s) = p money = 19 smallmoney = 10 bigint = 19 int = 10 smallint = 5 tinyint = 3 bit = 1 Все остальные типы = 0 |
int NULL = Введенные значения недопустимы. |
| Scale | Количество знаков справа от десятичного разделителя числового базового типа данных: decimal и numeric = 0 decimal (p,s) и numeric (p,s) = s money и smallmoney = 4 datetime = 3 datetime2 = 7 datetime2 (s) = s (0 – 7) datetimeoffset = 7 datetimeoffset (s) = s (0 – 7) время = 7 time (s) = s (0 – 7) все остальные типы = 0 |
int NULL = Введенные значения недопустимы. |
| TotalBytes | Число байтов, необходимое для хранения данных и метаданных значения. Эта информация может быть полезной при проверке максимального размера данных в столбце sql_variant. Если значение превышает 900, создание индекса завершается сбоем. |
int NULL = Введенные значения недопустимы. |
| Collation | Представляет параметры сортировки конкретного значения sql_variant. |
sysname NULL = Введенные значения недопустимы. |
| MaxLength | Максимальная длина типа данных, в байтах. Например, MaxLengthnvarchar(50) равно 100, а MaxLengthint равно 4. |
int NULL = Введенные значения недопустимы. |
Типы возвращаемых данных
sql_variant
Examples
A. Использование sql_variant в таблице
В приведенном ниже примере извлекаются сведения SQL_VARIANT_PROPERTY о значении colA46279.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)
B. Использование типа sql_variant в качестве переменной
В приведенном ниже примере происходит получение сведений SQL_VARIANT_PROPERTY о переменной с именем @v1.
DECLARE @v1 sql_variant;
SET @v1 = 'ABC';
SELECT @v1;
SELECT SQL_VARIANT_PROPERTY(@v1, 'BaseType');
SELECT SQL_VARIANT_PROPERTY(@v1, 'MaxLength');