Константы (Transact-SQL)
Применимо: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure azure Synapse Analytics Analytics Platform System (PDW)
Константа, также называемая литералом или скалярным значением, представляет собой символ, означающий указанное значение типа данных. Формат константы зависит от типа данных значения, который она означает.
Примечание.
Константа терминов в разработке приложений и концепция константы в Transact-SQL (T-SQL) не совпадают. В T-SQL нет определенного способа задать глобальное статическое значение. Константы в T-SQL эквивалентны строковым литеральным значениям.
Константы символьной строки
Константы строк символов заключены в одинарные кавычки и включают буквенно-цифровые символы (a
-z
,Z
A
- и9
0
-) и специальные символы, такие как восклицательный знак (!
@
), знак () и знак номера ().#
Константам строки символов присваиваются параметры сортировки по умолчанию для текущей базы данных. Если используется предложение COLLATE, преобразование в кодовую страницу базы данных по умолчанию по-прежнему происходит перед преобразованием в параметры сортировки, заданные предложением COLLATE. Символы, вводимые пользователями, сопоставляются с кодовой страницей компьютера и в случае необходимости переводятся в символы, совместимые с кодовой страницей базы данных по умолчанию.
Примечание.
Если параметр сортировки с поддержкой UTF8 указан с помощью предложения COLLATE, преобразование в кодовую страницу базы данных по умолчанию по-прежнему происходит перед преобразованием в параметры сортировки, заданные предложением COLLATE. Преобразование не выполняется непосредственно в указанные параметры сортировки с поддержкой Юникода. Дополнительные сведения см. в разделе Строка в Юникоде.
Если для соединения параметр QUOTED_IDENTIFIER содержит значение OFF, то символьные строки также могут заключаться в двойные кавычки, однако Microsoft OLE DB Driver for SQL Server и ODBC Driver for SQL Server автоматически используют SET 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
(N обозначает национальный язык в стандарте SQL-92).
Внимание
Префикс N
должен быть верхним регистром.
Например, 'Michél'
является символьной константой, а N'Michél'
является константой Юникода. Константы Юникода интерпретируются как данные Юникода и не оцениваются с помощью кодовой страницы. Константы в Юникоде имеют параметры сортировки. Этот параметр сортировки в основном управляет сравнением и учетом регистра. Константам Юникода присваиваются параметры сортировки по умолчанию для текущей базы данных. Если используется предложение COLLATE, преобразование в параметры сортировки базы данных по умолчанию по-прежнему происходит перед преобразованием в параметры сортировки, заданные предложением COLLATE. Дополнительные сведения см. в статье Collation and Unicode Support.
Константы в Юникоде поддерживают расширенные параметры сортировки.
Примечание.
Константы в Юникоде длиной более 8000 байт относятся к типу данных nvarchar(max).
Двоичные константы
Двоичные константы начинаются с префикса 0x
, за которым следует строка шестнадцатеричных чисел. Они не заключены в кавычки.
Ниже приведены примеры двоичных строк.
0xAE
0x12Ef
0x69048AEFDD010E
0x (empty binary string)
Примечание.
Двоичные константы длиной более 8000 байт относятся к типу данных varbinary(max).
bit
Константы
битовые константы представлены числами 0
или 1
не заключены в кавычки. Если число больше 1
используемого, оно преобразуется в 1
.
datetime
Константы
Константы типа datetime задаются с помощью символьных значений даты специального формата, заключенных в одинарные кавычки.
Ниже приведены примеры констант типа datetime.
'December 5, 1985'
'5 December, 1985'
'851205'
'12/5/98'
Примеры констант типа datetime:
'14:30:24'
'04:24 PM'
integer
Константы
Целые константы представлены строкой чисел, которые не заключены в кавычки и не содержат десятичные знаки. Целочисленные константы должны быть целыми числами; они не могут содержать десятичные знаки.
Ниже приведены примеры констант типа integer.
1894
2
decimal
Константы
десятичные константы представлены строкой чисел, которые не заключены в кавычки и содержат десятичную точку.
Ниже приведены примеры констант типа decimal.
1894.1204
2.0
float
и real
константы
Константы типов float и real представляются в экспоненциальной форме.
Ниже приведены примеры значений типа float или real:
101.5E5
0.5E-2
money
Константы
Константы типа money состоят из числовых строк, которые могут содержать десятичный разделитель и префикс в виде знака валюты. Константы денег не заключены в кавычки.
SQL Server не применяет какие-либо правила группирования, такие как вставка запятой (,
) каждые три цифры в строках, представляющих деньги.
Примечание.
Запятые игнорируются в любом месте строкового литерала, приведения к типу данных денег .
Ниже приведены примеры констант типа money.
$12
$542023.14
$-23
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
Расширенные параметры сортировки
Ядро СУБД поддерживает константы строк символов и Юникода, поддерживающие расширенные параметры сортировки. Дополнительные сведения см. в описании предложения COLLATE (Transact-SQL).