Constantes (Mecanismo de Banco de Dados)

Uma constante é 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. As constantes também são chamadas de literais. As tabelas a seguir mostram alguns exemplos de como as constantes são usadas.

Constantes usadas em

Exemplo

Cadeias de caracteres

'O''Brien'

'The level for job_id: %d should be between %d and %d.'

Cadeias de caracteres Unicode

N'Michl'

Constantes de cadeia de caracteres binária

0x12Ef

0x69048AEFDD010E

constantes bit

0 ou 1

constantes datetime

'April 15, 1998'

'04/15/98'

'14:30:24'

'04:24 PM'

constantes integer

1894

2

constantes decimal

1894.1204

2.0

constantes float e real

101.5E5

0.5E-2

constantes money

$12

$542023.14

constantes uniqueidentifier

0xff19966f868b11d0b42d00c04fc964ff

'6F9619FF-8B86-D011-B42D-00C04FC964FF'

No caso de constantes numéricas, para especificar o sinal do valor numérico use os operadores unários + e -:

+$156.45
-73.52E8
-129.42
+442

Às constantes Unicode e de caractere é atribuído o agrupamento padrão do banco de dados atual, a menos que você atribua um agrupamento específico usando a cláusula COLLATE, como neste exemplo:

'abc' COLLATE French_CI_AI
N'lustig' COLLATE German_Phonebook_CS_AS

Usando constantes no Transact-SQL

No Transact-SQL, podem ser usadas constantes de muitas maneiras. Alguns exemplos:

  • Como um valor constante em uma expressão aritmética:

    SELECT Price + $.10
    FROM MyTable
    
  • Como o valor de dados de uma coluna que é comparado em uma cláusula WHERE:

    SELECT *
    FROM MyTable
    WHERE LastName = 'O''Brien'
    
  • Como os valores de dados a serem colocados em uma variável:

    SET @DecimalVar = -1200.02
    
  • Como o valor de dados que deve ser colocado em uma coluna da linha atual. Isso é especificado com a cláusula SET da instrução UPDATE ou com a cláusula VALUES de uma instrução INSERT:

    UPDATE MyTable
    SET Price = $99.99
    WHERE PartNmbr = 1234
    INSERT INTO MyTable VALUES (1235, $88.88)
    
  • Como a cadeia de caracteres que especifica o texto da mensagem emitida por uma instrução PRINT ou RAISERROR:

    PRINT 'This is a message.'
    
  • Como o valor a ser testado em uma instrução condicional, tal como uma instrução IF ou funções CASE:

    IF (@@SALESTOTAL > $100000.00)
       EXECUTE Give_Bonus_Procedure