SQL_VARIANT_PROPERTY (Transact-SQL)
Gibt den Basisdatentyp und andere Informationen über einen sql_variant-Wert zurück.
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
Andere Ressourcen
Verwenden von sql_variant-Daten