Megosztás a következőn keresztül:


SQL_VARIANT_PROPERTY (Transact-SQL)

Vonatkozik a következőkre:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalitikai Platform System (PDW)SQL adatbázis a Microsoft Fabric-ben

Az alapadattípust és az sql_variant értékre vonatkozó egyéb információkat adja vissza.

Transact-SQL szintaxis konvenciók

Syntax

SQL_VARIANT_PROPERTY ( expression , property )  

Note

Ezt a szintaxist az Azure Synapse Analytics kiszolgáló nélküli SQL-készlete nem támogatja.

Arguments

expression
A sql_variant típusú kifejezés.

property
Annak a sql_variant tulajdonságnak a nevét tartalmazza, amelynek adatait meg kell adni. tulajdonságavarchar(128), és az alábbi értékek bármelyike lehet:

Value Description Visszaadott sql_variant alaptípusa
BaseType SQL Server-adattípus, például:

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 = A bemenet érvénytelen.
Precision A numerikus alap adattípus számjegyeinek száma:

dátum = 10

dátumidő = 23

datetime2 = 27

datetime2 (s) = 19 ha s = 0, egyéb s + 20

datetimeoffset = 34

datetimeoffset (s) = 26 ha s = 0, egyéb s + 27

smalldatetime = 16

idő = 16

idő (s) = 8, ha s = 0, egyéb s + 9

lebegőpontos = 53

valós = 24

decimális és numerikus = 18

decimális (p,s) és numerikus (p,s) = p

pénz = 19

smallmoney = 10

bigint = 19

int = 10

smallint = 5

tinyint = 3

bit = 1

Minden más típus = 0
int

NULL = A bemenet érvénytelen.
Scale A numerikus alapadattípus tizedespontjától jobbra lévő számjegyek száma:

decimális és numerikus = 0

decimális (p,s) és numerikus (p,s) = s

pénz és kismamák = 4

dátumidő = 3

datetime2 = 7

datetime2 (s) = s (0 - 7)

datetimeoffset = 7

datetimeoffset (s) = s (0 - 7)

idő = 7

idő (s) = s (0 - 7)

minden más típus = 0
int

NULL = A bemenet érvénytelen.
TotalBytes Az érték metaadatainak és adatainak tárolásához szükséges bájtok száma. Ez az információ hasznos lehet egy sql_variant oszlopban lévő adatok maximális oldalának ellenőrzéséhez. Ha az érték nagyobb, mint 900, az index létrehozása meghiúsul. int

NULL = A bemenet érvénytelen.
Collation Az adott sql_variant érték rendezése. sysname

NULL = A bemenet érvénytelen.
MaxLength Adattípus maximális hossza bájtban. Például az nvarchar(50)MaxLength értéke 100, a int maxLength értéke 4. int

NULL = A bemenet érvénytelen.

Visszatérési típusok

sql_variant

Examples

A. Sql_variant használata egy táblában

Az alábbi példa beolvassa SQL_VARIANT_PROPERTY annak az értéknek colA az 46279.1 adatait, aholcolB =1689 a tableAcolA típus sql_variant és colBa .

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  

Itt van az eredmények összessége. Vegye figyelembe, hogy a három érték mindegyike egy sql_variant.

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

B. Sql_variant használata változóként

Az alábbi példa egy nevesített SQL_VARIANT_PROPERTY@v1változó adatait kéri le.

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

Lásd még:

sql_variant (Transact-SQL)