Constantes (Transact-SQL)
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.
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 (#). Às constantes de cadeias de caracteres é atribuído o agrupamento padrão do banco de dados atual, a menos que a cláusula COLLATE seja usada para especificar um agrupamento. 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.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 Microsoft SQL Server Native Client Provider e o driver ODBC 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 agrupamentos avançados.
Observação As constantes de caracteres maiores que 8000 bytes recebem o tipo de 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 precedidas por um identificador N (N significa National Language no padrão SQL-92). O prefixo N deve ser maiúsculo. Por exemplo, 'Michél' é uma constante de caracteres, 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 um agrupamento. Esse agrupamento controla principalmente comparações e diferenciação de maiúsculas e minúsculas. Às constantes Unicode é atribuído o agrupamento padrão do banco de dados atual, a menos que a cláusula COLLATE seja usada para especificar um agrupamento. Os dados Unicode são armazenados usando 2 bytes por caractere, em vez de 1 byte por caractere para dados de caractere. Para obter mais informações, consulte Suporte a agrupamentos e a Unicode.As constantes da cadeira de caracteres Unicode oferecem suporte a agrupamentos avançados.
Observação As constantes Unicode maiores que 8000 bytes recebem o tipo de 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 8000 bytes recebem o tipo de 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 um for usado, ele será convertido em um.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'
Estes são exemplos de constantes de hora:
'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 delimitados por aspas e não contêm pontos decimais. Constantes integer devem ser números inteiros; elas não podem conter decimais.Os seguintes 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 contêm um ponto decimal.Os seguintes são exemplos de constantes decimal:
1894.1204 2.0
Constantes float e real
As constantes float e real são representadas usando notação científica.Os seguintes 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 monetário opcional como prefixo. As constantes money não são delimitadas por 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 As vírgulas são ignoradas em qualquer lugar na literal money especificada.
Os seguintes são exemplos de constantes money:
$12 $542023.14
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
Especificando 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 integer com sinal:
+145345234 -2147483648
Expressões decimal com sinal:
+145345234.2234 -2147483648.10
Expressões float com sinal:
+123E-3 -12E5
Expressões money com sinal:
-$45.56 +$423456.99
Agrupamentos avançados
O SQL Server oferece suporte a constantes de cadeias de caractere e Unicode que aceitam agrupamentos avançados. Para obter mais informações, consulte a cláusula COLLATE (Transact-SQL).