Поделиться через


Константы (компонент Database Engine)

Константа — это символ, представляющий некоторое значение данных. Формат константы зависит от типа данных, которые она представляет. Константы также называются литералами. В следующей таблице приведено несколько примеров использования констант.

Использование констант

Пример

Символьные строки

'O''Brien'

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

Строки в Юникоде

N'Michl'

Константы двоичных строк

0x12Ef

0x69048AEFDD010E

Константы bit

0 или 1

Константы datetime

'April 15, 1998'

'04/15/98'

'14:30:24'

'04:24 PM'

Константы integer

1894

2

Константы decimal

1894.1204

2.0

Константы float и real

101.5E5

0.5E-2

Константы money

$12

$542023.14

Константы uniqueidentifier

0xff19966f868b11d0b42d00c04fc964ff

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

В числовых константах для указания знака числового значения применяются унарные операторы «+» и «-»:

+$156.45
-73.52E8
-129.42
+442

Символьным константам и константам в Юникоде назначаются параметры сортировки текущей базы данных по умолчанию, если предложением COLLATE не указаны другие параметры сортировки, например:

'abc' COLLATE French_CI_AI
N'lustig' COLLATE German_Phonebook_CS_AS

Применение констант в Transact-SQL

В Transact-SQL константы могут использоваться разными способами. Рассмотрим несколько примеров.

  • В качестве постоянного значения в арифметическом выражении:

    SELECT Price + $.10
    FROM MyTable
    
  • В качестве значения данных, сравниваемого со столбцом в предложении WHERE:

    SELECT *
    FROM MyTable
    WHERE LastName = 'O''Brien'
    
  • В качестве значения, присваиваемого переменной:

    SET @DecimalVar = -1200.02
    
  • В качестве значения данных, помещаемого в столбец текущей строки при помощи предложения SET инструкции UPDATE или предложения VALUES инструкции INSERT:

    UPDATE MyTable
    SET Price = $99.99
    WHERE PartNmbr = 1234
    INSERT INTO MyTable VALUES (1235, $88.88)
    
  • В качестве символьной строки, определяющей текст сообщения, выдаваемого инструкцией PRINT или RAISERROR:

    PRINT 'This is a message.'
    
  • В качестве проверяемого значения в условной инструкции IF или функции CASE:

    IF (@@SALESTOTAL > $100000.00)
       EXECUTE Give_Bonus_Procedure