SQL_VARIANT_PROPERTY (Transact-SQL)

Gibt den Basisdatentyp und andere Informationen über einen sql_variant-Wert zurück.

Themenlink (Symbol) Transact-SQL-Syntaxkonventionen


SQL_VARIANT_PROPERTY ( expression , property )

expression

Ein Ausdruck vom Typ sql_variant.

property

Enthält den Namen der sql_variant-Eigenschaft, zu der Informationen bereitgestellt werden sollen. property ist vom Datentyp varchar(128) und kann jeden der folgenden Werte annehmen.

Wert

Beschreibung

Zurückgegebener Basistyp von sql_variant

BaseType

SQL Server-Datentyp, beispielsweise:

bigint

binary

char

date

datetime

datetime2

datetimeoffset

decimal

float

int

money

nchar

numeric

nvarchar

real

smalldatetime

smallint

smallmoney

time

tinyint

uniqueidentifier

varbinary

varchar

sysname

NULL = Eingabe ist nicht gültig.

Precision

Anzahl der Stellen des numerischen Basisdatentyps:

datetime = 23

smalldatetime = 16

float = 53

real = 24

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

money = 19

smallmoney = 10

bigint = 19

int = 10

smallint = 5

tinyint = 3

bit = 1

Alle sonstigen Typen = 0

int

NULL = Eingabe ist nicht gültig.

Scale

Anzahl der Stellen hinter dem Dezimalkomma des numerischen Basisdatentyps:

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

money und smallmoney = 4

datetime = 3

Alle sonstigen Typen = 0

int

NULL = Eingabe ist nicht gültig.

TotalBytes

Anzahl der Byte, die zum Speichern der Metadaten und der Daten des Werts erforderlich sind. Diese Informationen sind nützlich zum Überprüfen der maximalen Größe einer Datenseite in einer sql_variant-Spalte. Wenn der Wert größer als 900 ist, schlägt die Indexerstellung fehl.

int

NULL = Eingabe ist nicht gültig.

Collation

Stellt die Sortierung des entsprechenden sql_variant-Werts dar.

sysname

NULL = Eingabe ist nicht gültig.

MaxLength

Maximale Länge des Datentyps in Byte. So ist beispielsweise MaxLength von nvarchar(50) gleich 100, MaxLength von int beträgt 4.

int

NULL = Eingabe ist nicht gültig.

Im folgenden Beispiel werden SQL_VARIANT_PROPERTY-Informationen über den colA-Wert 46279.1 abgerufen, wobei colB = 1689 und tableA über colA vom Typ sql_variant und colB verfügt.

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

Dies ist das Resultset. Beachten Sie, dass jeder dieser drei Werte vom Datentyp sql_variant ist.

Base Type    Precision    Scale
---------    ---------    -----
decimal      8           2

(1 row(s) affected)

Community-Beiträge

HINZUFÜGEN
Anzeigen: