Константы (Transact-SQL)
применимо:Базе данных SQL Azure
Управляемый экземпляр SQL Azure
Azure Synapse Analytics
Платформенная система аналитики (PDW)
базы данных SQL в Microsoft Fabric
Константа, также называемая литералом или скалярным значением, представляет собой символ, означающий указанное значение типа данных. Формат константы зависит от типа данных значения, который она означает.
Примечание.
Константа терминов в разработке приложений и концепция константы в Transact-SQL (T-SQL) не совпадают. В T-SQL нет определенного способа задать глобальное статическое значение. Константы в T-SQL эквивалентны строковым литеральным значениям.
Константы символьной строки
Константы строк символов заключены в одинарные кавычки и включают буквенно-цифровые символы (a
-z
,A
-Z
и0
-9
) и специальные символы, такие как восклицательный знак (!
@
), знак () и знак номера ().#
Константам строки символов присваиваются параметры сортировки по умолчанию для текущей базы данных. Если используется предложение 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.
'December 5, 1985'
'5 December, 1985'
'851205'
'12/5/98'
Примеры констант типа datetime:
'14:30:24'
'04:24 PM'
Целые константы
Целочисленные константы (int) представлены строкой чисел, которые не заключены в кавычки и не содержат десятичные знаки. Константы int должны быть целыми числами; они не могут содержать десятичные знаки.
Ниже приведены примеры констант int :
1894
2
Десятичные константы
десятичные константы представлены строкой чисел, которые не заключены в кавычки и содержат десятичную точку.
Ниже приведены примеры констант типа decimal.
1894.1204
2.0
Константы с плавающей запятой
Константы типов float и real представляются в экспоненциальной форме.
Ниже приведены примеры значений типа float или real:
101.5E5
0.5E-2
Константы денег
Константы типа money состоят из числовых строк, которые могут содержать десятичный разделитель и префикс в виде знака валюты. Константы денег не заключены в кавычки.
SQL Server не применяет какие-либо правила группирования, такие как вставка запятой (,
) каждые три цифры в строках, представляющих деньги.
Примечание.
Запятые игнорируются в любом месте строкового литерала, приведения к типу данных денег .
Ниже приведены примеры констант типа money.
$12
$542023.14
$-23
Константы GUID
Константы типа uniqueidentifier состоят из строки, представляющей идентификатор GUID. Константы этого типа могут указываться с помощью символьного или двоичного символьного формата.
Следующие примеры представляют один и тот же идентификатор GUID.
'6F9619FF-8B86-D011-B42D-00C04FC964FF'
0xff19966f868b11d0b42d00c04fc964ff
Указание отрицательных и положительных чисел
Чтобы указать, положительное ли число или отрицательное, к числовым константам применяются унарные операторы +
и -
. Таким образом создается числовое выражение, представляющее числовое значение со знаком. Числовые константы используют положительные значения, если +
не применяются унарные -
операторы.
Подписанные выражения int :
+145345234
-2147483648
Выражения типа decimal со знаком:
+145345234.2234
-2147483648.10
Выражения типа float со знаком:
+123E-3
-12E5
Выражения типа money со знаком:
-$45.56
+$423456.99
Расширенные параметры сортировки
Ядро СУБД поддерживает константы строк символов и Юникода, поддерживающие расширенные параметры сортировки. Дополнительные сведения см. в предложении COLLATE .