Константы (Transact-SQL)
Константа, также называемая литералом или скалярным значением, представляет собой символ, означающий указанное значение типа данных. Формат константы зависит от типа данных значения, который она означает.
Константы символьной строки
Константы символьной строки заключаются в одинарные кавычки и состоят из алфавитно-цифровых (a-z, A-Z и 0-9) и специальных символов, таких как восклицательный знак (!), знак @ и знак номера (#). Значения константам символьной строки присваиваются согласно параметрам сортировки текущей базы данных. Чтобы указать другие параметры сортировки, необходимо использовать предложение COLLATE. Символы, вводимые пользователями, сопоставляются с кодовой страницей компьютера и в случае необходимости переводятся в символы, совместимые с кодовой страницей базы данных по умолчанию.Если для соединения значение параметра QUOTED_IDENTIFIER было задано как OFF, то символьные строки также могут заключаться в двойные кавычки, однако поставщик и драйвер ODBC для собственного клиента Microsoft SQL Server автоматически устанавливает значение параметра QUOTED_IDENTIFIER в значение ON. Рекомендуется использовать одинарные кавычки.
Если символьная строка, заключенная в одинарные кавычки, содержит также внедренную одинарную кавычку, то эту кавычку необходимо заключить в дополнительные одинарные кавычки. Данное требование не распространяется на строки, заключенные в двойные кавычки.
Ниже приведены примеры символьных строк.
'Cincinnati' 'O''Brien' 'Process X is 50% complete.' 'The level for job_id: %d should be between %d and %d.' "O'Brien"
Пустые строки представляются в виде двух последовательных одинарных кавычек. В режиме совместимости с версией 6.x пустая строка рассматривается как одинарный пробел.
Константы символьной строки поддерживают расширенные параметры сортировки.
Примечание Символьные константы длиной более 8000 байт относятся к типу данных varchar(max).
Строки в Юникоде
Строка Юникода имеет формат, схожий с обычной символьной строкой, но она начинается с идентификатора N (в стандарте SQL-92 идентификатор N содержит сведения о языке сообщения строки). Префикс N должен быть заглавной буквой. Например, символьная строка 'Michel' в Юникоде имеет вид N'Michel'. Константы в Юникоде рассматриваются как данные Юникода, и при их обработке кодовая страница не используется. Константы в Юникоде имеют параметры сортировки. Этот параметр сортировки в основном управляет сравнением и учетом регистра. Значения константам в Юникоде присваиваются согласно параметрам сортировки текущей базы данных. Чтобы указать другие параметры сортировки, необходимо использовать предложение COLLATE. При хранении данных Юникода каждый символ занимает 2 байта вместо 1 байта на символ в символьных данных. Дополнительные сведения см. в разделе Использование данных в Юникоде.Константы в Юникоде поддерживают расширенные параметры сортировки.
Примечание Константы в Юникоде длиной более 8000 байт относятся к типу данных nvarchar(max).
Двоичные константы
Двоичные константы начинаются с префикса 0x, за которым следует строка шестнадцатеричных чисел. Двоичные константы не заключаются в кавычки.Ниже приведены примеры двоичных строк.
0xAE 0x12Ef 0x69048AEFDD010E 0x (empty binary string)
Примечание Двоичные константы длиной более 8000 байт относятся к типу данных varbinary(max).
Константы типа bit
Константы типа bit содержат последовательности нулей и единиц и в кавычки не заключаются. Все числа, больше единицы, преобразуются в единицу.Константы datetime
Константы типа datetime задаются с помощью символьных значений даты специального формата, заключенных в одинарные кавычки. Дополнительные сведения о форматах для констант datetime см. в разделе Использование данных даты и времени.Ниже приведены примеры констант типа datetime.
'December 5, 1985' '5 December, 1985' '851205' '12/5/98'
Ниже приведены примеры констант, задающих время.
'14:30:24' '04:24 PM'
Константы integer
Константы типа integer состоят из числовых строк, которые не заключаются в кавычки и не содержат десятичного разделителя. Константы типа integer должны быть целыми числами, и в них не должно содержаться десятичных частей.Ниже приведены примеры констант типа integer.
1894 2
Константы decimal
Константы типа decimal состоят из числовых строк, которые не заключаются в кавычки и содержат десятичный разделитель.Ниже приведены примеры констант типа decimal.
1894.1204 2.0
Константы типа float и real
Константы типа float и real представляются в экспоненциальной форме.Ниже приведены примеры значений типа float или real:
101.5E5 0.5E-2
Константы money
Константы типа money состоят из числовых строк, которые могут содержать десятичный разделитель и префикс в виде знака валюты. Константы типа money в кавычки не заключаются.SQL Server не предусматривает каких-либо жестких правил группирования, таких как разделение с помощью запятой (,) каждых трех разрядов значения.
Примечание Запятые, указанные в любом месте литерала типа money, игнорируются.
Ниже приведены примеры констант типа money.
$12 $542023.14
Константы uniqueidentifier
Константы типа uniqueidentifier состоят из строки, представляющей идентификатор GUID. Константы этого типа могут указываться с помощью символьного или двоичного символьного формата.Следующие примеры представляют один и тот же идентификатор GUID.
'6F9619FF-8B86-D011-B42D-00C04FC964FF' 0xff19966f868b11d0b42d00c04fc964ff
Указание отрицательных и положительных чисел
Чтобы указать, положительное ли число или отрицательное, к числовым константам применяются унарные операторы + или -. Таким образом создается числовое выражение, представляющее числовое значение со знаком. Если не применяется унарный оператор + или -, то значение считается положительным.
Ниже приведен пример выражения типа integer со знаком.
+145345234 -2147483648
Ниже приведен пример выражения типа decimal со знаком.
+145345234.2234 -2147483648.10
Ниже приведен пример выражения типа float со знаком.
+123E-3 -12E5
Ниже приведен пример выражения типа money со знаком.
-$45.56 +$423456.99
Расширенные параметры сортировки
SQL Server поддерживает возможность работы с символьными строками и строками в Юникоде, поддерживающими расширенные параметры сортировки. Дополнительные сведения см. в разделе COLLATE (Transact-SQL).
См. также