Константы (компонент 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
См. также