Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Sistema di Piattaforma Analitica (PDW)
Database SQL in Microsoft Fabric
Restituisce il tipo di dati di base e altre informazioni su un valore di tipo sql_variant.
Convenzioni relative alla sintassi Transact-SQL
Syntax
SQL_VARIANT_PROPERTY ( expression , property )
Note
Questa sintassi non è supportata da pool SQL serverless in Azure Synapse Analytics.
Arguments
expression
Espressione di tipo sql_variant.
property
Contiene il nome della proprietà sql_variant per la quale è necessario specificare informazioni.
property è varchar(128). I valori possibili sono i seguenti:
| Value | Description | Tipo di base di sql_variant restituito |
|---|---|---|
| BaseType | Mapping dei tipi di dati SQL Server, come: 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 = Input non valido. |
| Precision | Numero di cifre del tipo di dati numerici di base: data = 10 datetime = 23 datetime2 = 27 datetime2 (s) = 19 quando s = 0, altrimenti s + 20 datatempooffset = 34 datetimeoffset (s) = 26 quando s = 0, altrimenti s + 27 smalldatetime = 16 tempo = 16 time (s) = 8 quando s = 0, altrimenti s + 9 float = 53 reale = 24 decimal e numeric = 18 decimal (p,s) e numeric (p,s) = p Denaro = 19 smallmoney = 10 bigint = 19 Int = 10 smallint = 5 tinyint = 3 bit = 1 Tutti gli altri tipi = 0 |
int NULL = Input non valido. |
| Scale | Numero di cifre a destra del separatore decimale con tipo di base numerico: decimal e numeric = 0 decimal (p,s) e numeric (p,s) = s money e smallmoney = 4 datetime = 3 datetime2 = 7 datetime2 (s) = s (0 - 7) datatempooffset = 7 datatimeoffset (s) = s (0 - 7) tempo = 7 tempo (s) = s (0 - 7) Tutti gli altri tipi = 0 |
int NULL = Input non valido. |
| TotalBytes | Numero di byte necessari per l'archiviazione sia dei metadati che dei dati del valore. Questo valore risulta utile per verificare le dimensioni massime dei dati in una colonna sql_variant. Se il valore è maggiore di 900, la creazione dell'indice genera un errore. |
int NULL = Input non valido. |
| Collation | Regole di confronto del valore di tipo sql_variant specifico. |
sysname NULL = Input non valido. |
| MaxLength | Lunghezza massima del tipo di dati espressa in byte. Ad esempio, MaxLength di nvarchar(50) è 100, MaxLength di int è 4. |
int NULL = Input non valido. |
Tipi restituiti
sql_variant
Examples
A. Uso di un tipo sql_variant in una tabella
Nell'esempio seguente vengono recuperate le informazioni di SQL_VARIANT_PROPERTY relative al valore colA46279.1, dove colB =1689, dato che tableA include colA di tipo sql_variant e 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
Il set di risultati è il seguente. Si noti che ognuno di questi tre valori è un sql_variant.
Base Type Precision Scale
--------- --------- -----
decimal 8 2
(1 row(s) affected)
B. Uso di un tipo sql_variant come variabile
Nell'esempio seguente vengono recuperate informazioni SQL_VARIANT_PROPERTY su una variabile con nome @v1.
DECLARE @v1 sql_variant;
SET @v1 = 'ABC';
SELECT @v1;
SELECT SQL_VARIANT_PROPERTY(@v1, 'BaseType');
SELECT SQL_VARIANT_PROPERTY(@v1, 'MaxLength');