Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL-database in Microsoft Fabric Preview
Retourneert het basisgegevenstype en andere informatie over een sql_variant waarde.
Transact-SQL syntaxis-conventies
Syntax
SQL_VARIANT_PROPERTY ( expression , property )
Note
Deze syntaxis wordt niet ondersteund door een serverloze SQL-pool in Azure Synapse Analytics.
Arguments
expression
Is een expressie van het type sql_variant.
property
Bevat de naam van de eigenschap sql_variant waarvoor informatie moet worden opgegeven.
eigenschap is varchar(128), en kan een van de volgende waarden zijn:
| Value | Description | Basistype van sql_variant geretourneerd |
|---|---|---|
| BaseType | SQL Server-gegevenstype, zoals: 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 = Invoer is ongeldig. |
| Precision | Aantal cijfers van het gegevenstype numerieke basis: datum = 10 datetime = 23 datetime2 = 27 datetime2 (s) = 19 wanneer s = 0, else s + 20 datetimeoffset = 34 datetimeoffset (s) = 26 wanneer s = 0, else s + 27 smalldatetime = 16 time = 16 tijd (s) = 8 wanneer s = 0, anders s + 9 float = 53 real = 24 decimaal en numeriek = 18 decimaal (p,s) en numeriek (p,s) = p geld = 19 smallmoney = 10 bigint = 19 int = 10 smallint = 5 tinyint = 3 bit = 1 Alle andere typen = 0 |
int NULL = Invoer is ongeldig. |
| Scale | Aantal cijfers rechts van het decimaalteken van het gegevenstype numerieke basis: decimaal en numeriek = 0 decimaal (p,s) en numeriek (p,s) = s geld en smallmoney = 4 datetime = 3 datetime2 = 7 datetime2 (s) = s (0 - 7) datetimeoffset = 7 datetimeoffset (s) = s (0 - 7) time = 7 tijd (s) = s (0 - 7) alle andere typen = 0 |
int NULL = Invoer is ongeldig. |
| TotalBytes | Het aantal bytes dat is vereist voor zowel de metagegevens als de gegevens van de waarde. Deze informatie is handig bij het controleren van de maximumzijde van gegevens in een sql_variant kolom. Als de waarde groter is dan 900, mislukt het maken van de index. |
int NULL = Invoer is ongeldig. |
| Collation | Vertegenwoordigt de sortering van de specifieke sql_variant waarde. |
sysname NULL = Invoer is ongeldig. |
| MaxLength | Maximale lengte van gegevenstype, in bytes. MaxLength van nvarchar(50) is bijvoorbeeld 100, MaxLength of int is 4. |
int NULL = Invoer is ongeldig. |
Return Types
sql_variant
Examples
A. Een sql_variant in een tabel gebruiken
In het volgende voorbeeld wordt informatie opgehaald SQL_VARIANT_PROPERTY over de colA waarde 46279.1 waar =colB1689, gezien dat colAtableA dat van het type sql_variant is en .colB
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 is het resultatenoverzicht. Houd er rekening mee dat elk van deze drie waarden een sql_variantis.
Base Type Precision Scale
--------- --------- -----
decimal 8 2
(1 row(s) affected)
B. Een sql_variant gebruiken als een variabele
In het volgende voorbeeld wordt informatie opgehaald SQL_VARIANT_PROPERTY over een variabele met de naam @v1.
DECLARE @v1 sql_variant;
SET @v1 = 'ABC';
SELECT @v1;
SELECT SQL_VARIANT_PROPERTY(@v1, 'BaseType');
SELECT SQL_VARIANT_PROPERTY(@v1, 'MaxLength');