Anmerkung
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen, dich anzumelden oder die Verzeichnisse zu wechseln.
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen , die Verzeichnisse 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');