Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL-Datenbank in Microsoft Fabric
Gibt den Basisdatentyp und andere Informationen über einen sql_variant-Wert zurück.
Transact-SQL-Syntaxkonventionen
Syntax
SQL_VARIANT_PROPERTY ( expression , property )
Note
Diese Syntax wird vom serverlosen SQL-Pool in Azure Synapse Analytics nicht unterstützt.
Arguments
expression
Ein Ausdruck vom Typ sql_variant.
property
Enthält den Namen der sql_variant-Eigenschaft, für die Informationen bereitgestellt werden sollen.
property ist vom Datentyp varchar( 128 ) . Die folgenden Werte sind möglich:
| Value | Description | Zurückgegebener Basistyp von sql_variant |
|---|---|---|
| BaseType | SQL Server-Datentyp, beispielsweise: 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 = Eingabe ist nicht gültig. |
| Precision | Anzahl der Stellen des numerischen Basisdatentyps: Datum = 10 Datum = 23 datetime2 = 27 datetime2 (s) = 19, wenn s = 0, sonst s + 20 datetimeoffset = 34 datetimeoffset (s) = 26, wenn s = 0, sonst s + 27 smalldatetime = 16 Time = 16 time (s) = 8, wenn s = 0, sonst s + 9 float = 53 real = 24 decimal und numeric = 18 decimal (p,s) und numeric (p,s) = p Geld = 19 Smallmoney = 10 Bigotte = 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 und numeric = 0 decimal (p,s) und numeric (p,s) = s money und smallmoney = 4 Datumszeit = 3 datetime2 = 7 datetime2 (s) = s (0 - 7) datetimeoffset = 7 datetimeoffset (s) = s (0 - 7) Zeit = 7 Zeit (s) = s (0 - 7) 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. Beispielsweise entspricht MaxLength von nvarchar( 50 ) dem Wert 100, während MaxLength von int dem Wert 4 entspricht. |
int NULL = Eingabe ist nicht gültig. |
Rückgabetypen
sql_variant
Examples
A. Verwenden von „sql_variant“ in einer Tabelle
Dann werden im folgenden Beispiel 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
Hier sehen Sie das Ergebnis. Beachten Sie, dass jeder dieser drei Werte vom Datentyp sql_variant ist.
Base Type Precision Scale
--------- --------- -----
decimal 8 2
(1 row(s) affected)
B. Verwenden von „sql_variant“ als Variable
Im folgenden Beispiel werden SQL_VARIANT_PROPERTY-Informationen über eine Variable namens @v1 abgerufen.
DECLARE @v1 sql_variant;
SET @v1 = 'ABC';
SELECT @v1;
SELECT SQL_VARIANT_PROPERTY(@v1, 'BaseType');
SELECT SQL_VARIANT_PROPERTY(@v1, 'MaxLength');