Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Относится к:SQL Server
Azure SQL Database
Azure SQL Managed Instance
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');