SQL_VARIANT_PROPERTY (Transact-SQL)

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

Themenlink (Symbol)Transact-SQL-Syntaxkonventionen

Syntax

SQL_VARIANT_PROPERTY ( expression , property )

Argumente

expression

Ein Ausdruck vom Typ sql_variant.

Eigenschaft (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 2005-Datentyp, beispielsweise:

bigint

binary

char

decimal

float

int

money

nchar

numeric

nvarchar

real

smalldatetime

smallint

smallmoney

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 Wertes 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-Wertes 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.

Rückgabetypen

sql_variant

Beispiele

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)

Siehe auch

Verweis

sql_variant (Transact-SQL)

Andere Ressourcen

Verwenden von sql_variant-Daten

Hilfe und Informationen

Informationsquellen für SQL Server 2005