SQL_VARIANT_PROPERTY (Transact-SQL)
Si applica a: SQL Server database SQL di Azure Istanza gestita di SQL di Azure database SQL di Azure Synapse Analytics Platform System (PDW) 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
Sintassi
SQL_VARIANT_PROPERTY ( expression , property )
Nota
Questa sintassi non è supportata da pool SQL serverless in Azure Synapse Analytics.
Argomenti
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:
valore | Descrizione | 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. |
Precisione | Numero di cifre del tipo di dati numerici di base: date = 10 datetime = 23 datetime2 = 27 datetime2 (s) = 19 quando s = 0, altrimenti s + 20 datetimeoffset = 34 datetimeoffset (s) = 26 quando s = 0, altrimenti s + 27 smalldatetime = 16 time = 16 time (s) = 8 quando s = 0, altrimenti s + 9 float = 53 real = 24 decimal e numeric = 18 decimal (p,s) e numeric (p,s) = p money = 19 smallmoney = 10 bigint = 19 int = 10 smallint = 5 tinyint = 3 bit = 1 Tutti gli altri tipi = 0 |
int NULL = Input non valido. |
Ridimensiona | 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) datetimeoffset = 7 datetimeoffset (s) = s (0 - 7) time = 7 time (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. |
Regole di confronto | 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
Esempi
R. Uso di un tipo sql_variant in una tabella
Nell'esempio seguente vengono recuperate le informazioni di SQL_VARIANT_PROPERTY
relative al valore colA
46279.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');