Constantes (Transact-SQL)
Aplica-se a: SQL Server
Banco de Dados
SQL do Azure Instância Gerenciada de SQL
do Azure PDW (Sistema de Plataforma de Análise) do Azure Synapse Analytics
Uma constante, também conhecida como uma literal ou um valor escalar, é um símbolo que representa um valor de dados específico. O formato de uma constante depende do tipo de dados do valor que representa.
Observação
O termo constante no desenvolvimento de aplicativos e o conceito de constante no Transact-SQL (T-SQL) não são os mesmos. Não há uma maneira específica de definir um valor estático global no T-SQL. As constantes no T-SQL são equivalentes a valores literais de cadeia de caracteres.
Constantes de cadeia de caracteres
As constantes de cadeias de caracteres são incluídas entre aspas simples e incluem caracteres alfanuméricos (a
-z
, A
-Z
e 0
-9
) e caracteres especiais, como ponto de exclamação (!
), arroba (@
) e sinal numérico (#
). As constantes de cadeia de caracteres são atribuídas à ordenação padrão do banco de dados atual. Se a cláusula COLLATE for usada, a conversão para a página de código padrão do banco de dados ainda ocorrerá antes da conversão para a ordenação especificada pela cláusula COLLATE. As cadeias de caracteres digitadas por usuários são avaliadas pela página de código do computador e são convertidas na página de código padrão do banco de dados, se isso for necessário.
Observação
Quando uma ordenação habilitada para UTF8 é especificada usando a cláusula COLLATE, a conversão para a página de código padrão do banco de dados ainda ocorre antes da conversão para a ordenação especificada pela cláusula COLLATE. A conversão não é feita diretamente para a ordenação habilitada para Unicode especificada. Para obter mais informações, consulte Cadeia de caracteres Unicode.
Se a opção QUOTED_IDENTIFIER foi definida como OFF para uma conexão, as cadeias de caracteres também podem ser incluídas entre aspas duplas, mas o Driver do Microsoft OLE DB para SQL Server e o ODBC Driver for SQL Server usam automaticamente SET QUOTED_IDENTIFIER ON
. Recomenda-se usar aspas simples.
Se uma cadeia de caracteres incluída entre aspas simples contiver uma aspa inserida, represente a aspa simples inserida com duas aspas simples. Isso não é necessário em cadeias de caracteres inseridas em aspas duplas.
Os seguintes são exemplos de cadeias de caracteres:
'Cincinnati'
'O''Brien'
'Process X is 50% complete.'
'The level for job_id: %d should be between %d and %d.'
"O'Brien"
As cadeias de caracteres vazias são representadas como duas aspas simples sem nada entre elas. No modo de compatibilidade 6.x, uma cadeia de caracteres vazia é tratada como um único espaço.
As constantes de cadeia de caracteres oferecem suporte a ordenações avançadas.
Observação
As constantes de caractere maiores que 8.000 bytes são tipadas como dados varchar(max).
Cadeias de caracteres Unicode
As cadeias de caracteres Unicode têm um formato semelhante ao das cadeias de caracteres, mas são prefixadas com um identificador N
(N significa National Language no padrão SQL-92).
Importante
O prefixo N
deve ser maiúsculo.
Por exemplo, 'Michél'
é uma constante de caractere enquanto N'Michél'
é uma constante Unicode. As constantes Unicode são interpretadas como dados Unicode e não são avaliadas com o uso de uma página de código. As constantes Unicode têm uma ordenação. Esse ordenação controla principalmente comparações e diferenciação de maiúsculas e minúsculas. As constantes Unicode são atribuídas à ordenação padrão do banco de dados atual. Se a cláusula COLLATE for usada, a conversão para a ordenação padrão do banco de dados ainda ocorrerá antes da conversão para a ordenação especificada pela cláusula COLLATE. Para obter mais informações, consulte Suporte a ordenações e a Unicode.
As constantes da cadeira de caracteres Unicode oferecem suporte a ordenações avançados.
Observação
As constantes Unicode maiores que 8.000 bytes são tipadas como dados nvarchar(max).
Constantes binárias
As constantes binárias têm o prefixo 0x
e são uma cadeia de números hexadecimais. Elas não são incluídas entre aspas.
Os seguintes são exemplos de cadeias binárias:
0xAE
0x12Ef
0x69048AEFDD010E
0x (empty binary string)
Observação
As constantes binárias maiores que 8.000 bytes são tipadas como dados varbinary(max).
Constantes bit
As constantes bit são representadas pelos números 0
ou 1
e não são incluídas entre aspas. Se um número maior que 1
for usado, ele será convertido em 1
.
Constantes datetime
As constantes datetime são representadas usando valores de data de caractere em formatos específicos, incluídos entre aspas simples.
Estes são exemplos de constantes datetime:
'December 5, 1985'
'5 December, 1985'
'851205'
'12/5/98'
Exemplos de constantes datetime são:
'14:30:24'
'04:24 PM'
Constantes integer
As constantes integer são representadas por uma cadeia de números que não são incluídos entre aspas e que não contêm pontos decimais. As constantes integer devem ser números inteiros; elas não podem conter decimais.
Estes são exemplos de constantes integer:
1894
2
Constantes decimal
As constantes decimal são representadas por uma cadeia de números que não são incluídos entre aspas e que contêm um ponto decimal.
Estes são exemplos de constantes decimal:
1894.1204
2.0
float
e real
constantes
As constantes float e real são representadas com notação científica.
Estes são exemplos de valores float ou real:
101.5E5
0.5E-2
Constantes money
As constantes money são representadas como cadeias de números com um ponto decimal opcional e um símbolo da moeda opcional como prefixo. As constantes money não são incluídas entre aspas.
O SQL Server não impõe nenhum tipo de regra de agrupamento, tal como a inserção de uma vírgula (,
) a cada três dígitos em cadeias que representam dinheiro.
Observação
Vírgulas são ignoradas em qualquer lugar em um literal de cadeia de caracteres que é convertido no tipo de dados money.
Estes são exemplos de constantes money:
$12
$542023.14
$-23
Constantes uniqueidentifier
As constantes uniqueidentifier são uma cadeia de caracteres que representa um GUID. Elas podem ser especificadas em um formato de caractere ou cadeia de binários.
Os exemplos a seguir especificam o mesmo GUID:
'6F9619FF-8B86-D011-B42D-00C04FC964FF'
0xff19966f868b11d0b42d00c04fc964ff
Especificar números negativos e positivos
Para indicar se um número é positivo ou negativo, aplique os operadores unários +
ou -
a uma constante numérica. Isso cria uma expressão numérica que representa o valor numérico com sinal. As constantes numéricas usam positivo quando os operadores unários +
ou -
não são aplicados.
Expressões de integer com sinal:
+145345234
-2147483648
Expressões de decimal com sinal:
+145345234.2234
-2147483648.10
Expressões float com sinal:
+123E-3
-12E5
Expressões money com sinal:
-$45.56
+$423456.99
Ordenações avançadas
O Mecanismo de Banco de Dados dá suporte a constantes de cadeias de caractere e Unicode que aceitam ordenações avançadas. Para obter mais informações, confira a cláusula COLLATE (Transact-SQL).