Sdílet prostřednictvím


SQL_VARIANT_PROPERTY (Transact-SQL)

platí pro:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)databáze SQL v Microsoft Fabric

Vrátí základní datový typ a další informace o hodnotě sql_variant .

Transact-SQL konvence syntaxe

Syntax

SQL_VARIANT_PROPERTY ( expression , property )  

Note

Tato syntaxe není podporována bezserverovým fondem SQL ve službě Azure Synapse Analytics.

Arguments

expression
Je výraz typu sql_variant.

property
Obsahuje název vlastnosti sql_variant , pro kterou se mají poskytnout informace. vlastnost je varchar(128) a může být libovolná z následujících hodnot:

Value Description Základní typ vrácených sql_variant
BaseType Datový typ SQL Serveru, například:

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 = Vstup není platný.
Precision Počet číslic číselného základního datového typu:

Datum = 10

Čas = 23

datetime2 = 27

datetime2 (s) = 19, když s = 0, else s + 20

datetimeoffset = 34

datetimeoffset (s) = 26, když s = 0, else s + 27

smalldatetime = 16

čas = 16

time (s) = 8, když s = 0, else s + 9

Float = 53

real = 24

desetinnéa číselné = 18

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

peníze = 19

smallmoney = 10

bigint = 19

int = 10

smallint = 5

tinyint = 3

bit = 1

Všechny ostatní typy = 0
int

NULL = Vstup není platný.
Scale Počet číslic napravo od desetinné čárky číselného základního datového typu:

desetinné a číselné = 0

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

Peníze a malé peníze = 4

Datum čas = 3

DateTime2 = 7

datetime2 (s) = s (0 - 7)

datetimeoffset = 7

datetimeoffset (s) = s (0 - 7)

čas = 7

čas (s) = s (0 - 7)

všechny ostatní typy = 0
int

NULL = Vstup není platný.
TotalBytes Počet bajtů potřebných k uložení metadat i dat hodnoty Tyto informace by byly užitečné při kontrole maximální strany dat ve sloupci sql_variant . Pokud je hodnota větší než 900, vytvoření indexu selže. int

NULL = Vstup není platný.
Collation Představuje kolaci konkrétní sql_variant hodnoty. sysname

NULL = Vstup není platný.
MaxLength Maximální délka datového typu v bajtech Například MaxLength z nvarchar(50) je 100, MaxLengthint je 4. int

NULL = Vstup není platný.

Návratové typy

sql_variant

Examples

A. Použití sql_variant v tabulce

Následující příklad načte SQL_VARIANT_PROPERTY informace o hodnotě colA46279.1, kdecolB =1689 , vzhledem k tomu, že tableAcolA typ sql_variant a .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  

Tady je soubor výsledků. Všimněte si, že každá z těchto tří hodnot je sql_variant.

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

B. Použití sql_variant jako proměnné

Následující příklad načte SQL_VARIANT_PROPERTY informace o proměnné s názvem @v1.

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

Viz také

sql_variant (Transact-SQL)