Udostępnij za pomocą


SQL_VARIANT_PROPERTY (Transact-SQL)

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL Database w Microsoft Fabric

Zwraca podstawowy typ danych i inne informacje o wartości sql_variant .

Transact-SQL konwencje składni

Syntax

SQL_VARIANT_PROPERTY ( expression , property )  

Note

Ta składnia nie jest obsługiwana przez bezserwerową pulę SQL w usłudze Azure Synapse Analytics.

Arguments

expression
Jest wyrażeniem typu sql_variant.

property
Zawiera nazwę właściwości sql_variant , dla której należy podać informacje. właściwość jest varchar(128)i może być jedną z następujących wartości:

Value Description Zwracany typ podstawowy sql_variant
BaseType Typ danych programu SQL Server, taki jak:

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 = dane wejściowe są nieprawidłowe.
Precision Liczba cyfr typu danych podstawowych liczbowych:

data = 10

data/godzina = 23

datetime2 = 27

datetime2 (s) = 19, gdy s = 0, inne s + 20

datetimeoffset = 34

datetimeoffset (s) = 26, gdy s = 0, inne s + 27

smalldatetime = 16

godzina = 16

time (s) = 8, gdy s = 0, else s + 9

Float = 53

real = 24

dziesiętne i liczbowe = 18

liczba dziesiętna (p,s) i liczbowa (p,s) = p

pieniądze = 19

smallmoney = 10

bigint = 19

int = 10

smallint = 5

tinyint = 3

bit = 1

Wszystkie inne typy = 0
int

NULL = dane wejściowe są nieprawidłowe.
Scale Liczba cyfr po prawej stronie punktu dziesiętnego typu danych podstawowych liczbowych:

dziesiętne i liczbowe = 0

liczba dziesiętna (p,s) i liczbowa (p,s) = s

pieniądze i drobne pieniądze = 4

data/godzina = 3

datetime2 = 7

datetime2 (s) = s (0– 7)

datetimeoffset = 7

datetimeoffset (s) = s (0–7)

czas = 7

time (s) = s (0–7)

wszystkie inne typy = 0
int

NULL = dane wejściowe są nieprawidłowe.
TotalBytes Liczba bajtów wymaganych do przechowywania zarówno metadanych, jak i danych wartości. Te informacje byłyby przydatne podczas sprawdzania maksymalnej części danych w kolumnie sql_variant . Jeśli wartość jest większa niż 900, tworzenie indeksu kończy się niepowodzeniem. int

NULL = dane wejściowe są nieprawidłowe.
Collation Reprezentuje sortowanie określonej wartości sql_variant . sysname

NULL = dane wejściowe są nieprawidłowe.
MaxLength Maksymalna długość typu danych w bajtach. Na przykład Wartość MaxLengthnvarchar(50) to 100 , wartość MaxLength liczby int wynosi 4. int

NULL = dane wejściowe są nieprawidłowe.

Typy zwracane

sql_variant

Examples

A. Używanie sql_variant w tabeli

W poniższym przykładzie są pobierane SQL_VARIANT_PROPERTY informacje o colA wartości46279.1, w którejcolB =1689 parametr ma tableAcolAsql_variant typ i .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  

Oto zestaw wyników. Należy pamiętać, że każda z tych trzech wartości jest sql_variant.

Base Type    Precision    Scale  
---------    ---------    -----  
decimal      8           2  
  
(1 row(s) affected)  

B. Używanie sql_variant jako zmiennej

Poniższy przykład pobiera SQL_VARIANT_PROPERTY informacje o zmiennej o nazwie @v1.

DECLARE @v1 sql_variant;  
SET @v1 = 'ABC';  
SELECT @v1;  
SELECT SQL_VARIANT_PROPERTY(@v1, 'BaseType');  
SELECT SQL_VARIANT_PROPERTY(@v1, 'MaxLength');  

Zobacz też

sql_variant (Transact-SQL)