Delen via


SQL_VARIANT_PROPERTY (Transact-SQL)

Van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL-database in Microsoft Fabric Preview

Retourneert het basisgegevenstype en andere informatie over een sql_variant waarde.

Transact-SQL syntaxis-conventies

Syntax

SQL_VARIANT_PROPERTY ( expression , property )  

Note

Deze syntaxis wordt niet ondersteund door een serverloze SQL-pool in Azure Synapse Analytics.

Arguments

expression
Is een expressie van het type sql_variant.

property
Bevat de naam van de eigenschap sql_variant waarvoor informatie moet worden opgegeven. eigenschap is varchar(128), en kan een van de volgende waarden zijn:

Value Description Basistype van sql_variant geretourneerd
BaseType SQL Server-gegevenstype, zoals:

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 = Invoer is ongeldig.
Precision Aantal cijfers van het gegevenstype numerieke basis:

datum = 10

datetime = 23

datetime2 = 27

datetime2 (s) = 19 wanneer s = 0, else s + 20

datetimeoffset = 34

datetimeoffset (s) = 26 wanneer s = 0, else s + 27

smalldatetime = 16

time = 16

tijd (s) = 8 wanneer s = 0, anders s + 9

float = 53

real = 24

decimaal en numeriek = 18

decimaal (p,s) en numeriek (p,s) = p

geld = 19

smallmoney = 10

bigint = 19

int = 10

smallint = 5

tinyint = 3

bit = 1

Alle andere typen = 0
int

NULL = Invoer is ongeldig.
Scale Aantal cijfers rechts van het decimaalteken van het gegevenstype numerieke basis:

decimaal en numeriek = 0

decimaal (p,s) en numeriek (p,s) = s

geld en smallmoney = 4

datetime = 3

datetime2 = 7

datetime2 (s) = s (0 - 7)

datetimeoffset = 7

datetimeoffset (s) = s (0 - 7)

time = 7

tijd (s) = s (0 - 7)

alle andere typen = 0
int

NULL = Invoer is ongeldig.
TotalBytes Het aantal bytes dat is vereist voor zowel de metagegevens als de gegevens van de waarde. Deze informatie is handig bij het controleren van de maximumzijde van gegevens in een sql_variant kolom. Als de waarde groter is dan 900, mislukt het maken van de index. int

NULL = Invoer is ongeldig.
Collation Vertegenwoordigt de sortering van de specifieke sql_variant waarde. sysname

NULL = Invoer is ongeldig.
MaxLength Maximale lengte van gegevenstype, in bytes. MaxLength van nvarchar(50) is bijvoorbeeld 100, MaxLength of int is 4. int

NULL = Invoer is ongeldig.

Return Types

sql_variant

Examples

A. Een sql_variant in een tabel gebruiken

In het volgende voorbeeld wordt informatie opgehaald SQL_VARIANT_PROPERTY over de colA waarde 46279.1 waar =colB1689, gezien dat colAtableA dat van het type sql_variant is en .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  

Hier is het resultatenoverzicht. Houd er rekening mee dat elk van deze drie waarden een sql_variantis.

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

B. Een sql_variant gebruiken als een variabele

In het volgende voorbeeld wordt informatie opgehaald SQL_VARIANT_PROPERTY over een variabele met de naam @v1.

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

See Also

sql_variant (Transact-SQL)