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.

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

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)