Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Sistema de Plataforma de Análise (PDW)
Base de dados SQL no Microsoft Fabric
Retorna o tipo de dados base e outras informações sobre um valor sql_variant .
Transact-SQL convenções de sintaxe
Syntax
SQL_VARIANT_PROPERTY ( expression , property )
Note
Essa sintaxe não é suportada pelo pool SQL sem servidor no Azure Synapse Analytics.
Arguments
expression
É uma expressão do tipo sql_variant.
property
Contém o nome da propriedade sql_variant para a qual as informações devem ser fornecidas.
propriedade é varchar(128) e pode ser qualquer um dos seguintes valores:
| Value | Description | Tipo de base de sql_variant devolvido |
|---|---|---|
| BaseType | Tipo de dados do SQL Server, como: 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 = A entrada não é válida. |
| Precision | Número de dígitos do tipo de dados de base numérica: data = 10 datetime = 23 datetime2 = 27 datetime2 (s) = 19 quando s = 0, else s + 20 datatempodeslocado = 34 datetimeoffset (s) = 26 quando s = 0, else s + 27 smalldatetime = 16 tempo = 16 tempo (s) = 8 quando s = 0, else s + 9 flutuador = 53 real = 24 decimal e numérico = 18 decimal (p,s) e numérico (p,s) = p dinheiro = 19 dinheiro pequeno = 10 bigint = 19 INT = 10 smallint = 5 tinyint = 3 bit = 1 Todos os outros tipos = 0 |
int NULL = A entrada não é válida. |
| Scale | Número de algarismos à direita da vírgula decimal do tipo de dados de base numérica: decimal e numérico = 0 decimal (p,s) e numérico (p,s) = s dinheiro e dinheiro pequeno = 4 datetime = 3 datetime2 = 7 datetime2 (s) = s (0 - 7) datatempodeslocado = 7 datatempodeslocamento (s) = s (0 - 7) tempo = 7 tempo (s) = s (0 - 7) todos os outros tipos = 0 |
int NULL = A entrada não é válida. |
| TotalBytes | Número de bytes necessários para armazenar os metadados e os dados do valor. Essas informações seriam úteis para verificar o lado máximo dos dados em uma coluna sql_variant . Se o valor for maior que 900, a criação do índice falhará. |
int NULL = A entrada não é válida. |
| Collation | Representa o agrupamento do valor sql_variant específico. |
sysname NULL = A entrada não é válida. |
| MaxLength | Comprimento máximo do tipo de dados, em bytes. Por exemplo, MaxLength de nvarchar(50) é 100, MaxLength de int é 4. |
int NULL = A entrada não é válida. |
Tipos de devolução
sql_variant
Examples
A. Usando um sql_variant em uma tabela
O exemplo a SQL_VARIANT_PROPERTY seguir recupera informações sobre o colA valor 46279.1 onde colB =1689, dado que tableA tem colA que é do 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
Aqui está o conjunto de resultados. Observe que cada um desses três valores é um sql_variant.
Base Type Precision Scale
--------- --------- -----
decimal 8 2
(1 row(s) affected)
B. Usando um sql_variant como variável
O exemplo a SQL_VARIANT_PROPERTY seguir recupera informações sobre uma variável chamada @v1.
DECLARE @v1 sql_variant;
SET @v1 = 'ABC';
SELECT @v1;
SELECT SQL_VARIANT_PROPERTY(@v1, 'BaseType');
SELECT SQL_VARIANT_PROPERTY(@v1, 'MaxLength');