Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analysplattformssystem (PDW)
SQL-databas i Förhandsversion av Microsoft Fabric
Returnerar basdatatypen och annan information om ett sql_variant värde.
Transact-SQL syntaxkonventioner
Syntax
SQL_VARIANT_PROPERTY ( expression , property )
Note
Den här syntaxen stöds inte av en serverlös SQL-pool i Azure Synapse Analytics.
Arguments
expression
Är ett uttryck av typen sql_variant.
property
Innehåller namnet på egenskapen sql_variant som informationen ska anges för.
egenskapen är varchar(128), och kan vara något av följande värden:
| Value | Description | Bastyp för sql_variant returneras |
|---|---|---|
| BaseType | SQL Server-datatyp, till exempel: 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 = Indata är ogiltigt. |
| Precision | Antal siffror av den numeriska basdatatypen: date = 10 datetime = 23 datetime2 = 27 datetime2 (s) = 19 när s = 0, annars s + 20 datetimeoffset = 34 datetimeoffset (s) = 26 när s = 0, annars s + 27 smalldatetime = 16 time = 16 time (s) = 8 when s = 0, else s + 9 float = 53 real = 24 decimal ochnumeriskt = 18 decimal ( p,s) och numeriskt (p,s) = p money = 19 smallmoney = 10 bigint = 19 int = 10 smallint = 5 tinyint = 3 bit = 1 Alla andra typer = 0 |
int NULL = Indata är ogiltigt. |
| Scale | Antal siffror till höger om decimaltecknet för den numeriska basdatatypen: decimal ochnumeriskt = 0 decimal ( p,s) och numeriskt (p,s) = s pengar och smallmoney = 4 datetime = 3 datetime2 = 7 datetime2 (s) = s (0–7) datetimeoffset = 7 datetimeoffset (s) = s (0-7) time = 7 time (s) = s (0 - 7) alla andra typer = 0 |
int NULL = Indata är ogiltigt. |
| TotalBytes | Antal byte som krävs för att lagra både metadata och data för värdet. Den här informationen skulle vara användbar för att kontrollera den maximala sidan av data i en sql_variant kolumn. Om värdet är större än 900 misslyckas indexskapandet. |
int NULL = Indata är ogiltigt. |
| Collation | Representerar sortering av det specifika sql_variant värdet. |
sysname NULL = Indata är ogiltigt. |
| MaxLength | Maximal datatyplängd i byte. MaxLength för nvarchar(50) är till exempel 100, MaxLength för int är 4. |
int NULL = Indata är ogiltigt. |
Return Types
sql_variant
Examples
A. Använda en sql_variant i en tabell
I följande exempel hämtas SQL_VARIANT_PROPERTY information om värdet colA46279.1 där1689 =colB , med tanke på att tableA har colA som är av typen sql_variant och .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
Här är resultatet. Observera att vart och ett av dessa tre värden är en sql_variant.
Base Type Precision Scale
--------- --------- -----
decimal 8 2
(1 row(s) affected)
B. Använda en sql_variant som en variabel
I följande exempel hämtas SQL_VARIANT_PROPERTY information om en variabel med namnet @v1.
DECLARE @v1 sql_variant;
SET @v1 = 'ABC';
SELECT @v1;
SELECT SQL_VARIANT_PROPERTY(@v1, 'BaseType');
SELECT SQL_VARIANT_PROPERTY(@v1, 'MaxLength');