Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Banco de Dados SQL do Azure
Instância Gerenciada de SQL do Azure
Azure Synapse Analytics
Sistema de Plataforma de Análise (PDW)
Banco de dados SQL no Microsoft Fabric
Retorna o tipo de dados base e outras informações sobre um valor sql_variant.
Convenções de sintaxe de Transact-SQL
Syntax
SQL_VARIANT_PROPERTY ( expression , property )
Note
Não há suporte a essa sintaxe para o pool de 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 cujas informações devem ser fornecidas.
property é varchar( 128 ) e pode ser um dos seguintes valores:
| Value | Description | Tipo base de sql_variant retornado |
|---|---|---|
| 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 base numérico: Data = 10 data-hora = 23 datatempo2 =27 datetime2 (s) = 19 quando s = 0; caso contrário, s + 20 datatempodeslocado = 34 datetimeoffset (s) = 26 quando s = 0; caso contrário, s + 27 smalldatetime = 16 tempo = 16 time (s) = 8 quando s = 0; caso contrário, s + 9 float = 53 real = 24 decimal e numeric = 18 decimal (p,s) e numeric (p,s) = p dinheiro = 19 smallmoney = 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 dígitos à direita do ponto decimal do tipo de dados base numérico: decimal e numeric = 0 decimal (p,s) e numeric (p,s) = s money e smallmoney = 4 datetime = 3 datatempo2 = 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 manter os metadados e os dados do valor. Essas informações serão úteis na verificação do tamanho 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 a ordenação 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 e MaxLength de int é 4. |
int NULL = A entrada não é válida. |
Tipos de retorno
sql_variant
Examples
A. Usando uma sql_variant em uma tabela
O exemplo a seguir recupera informações de SQL_VARIANT_PROPERTY sobre o valor de colA46279.1, em que colB =1689, considerando que tableA tenha colA 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
Veja a seguir o conjunto de resultados. Observe que cada um desses três valores é uma sql_variant.
Base Type Precision Scale
--------- --------- -----
decimal 8 2
(1 row(s) affected)
B. Usando uma sql_variant como uma variável
O exemplo a seguir recupera informações de SQL_VARIANT_PROPERTY 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');