Я нашел некоторое нечетное синтаксическое поведение при использовании OPTION в инструкции SELECT при назначении значений локальным переменным. Похоже, что OPTION разрешен, когда оператор начинается с SELECT, но если он является частью команды SET, то он запрещен.Переменная SQL SET SET, не разрешающая выбор при использовании SELECT
DECLARE @var CHAR(1)
SET @var = (SELECT '1' OPTION (QUERYTRACEON 2312))
SET @var = (SELECT '1') OPTION (QUERYTRACEON 2312);
SELECT @var = '1' OPTION (QUERYTRACEON 2312)
SELECT @var
Оклейка выше в SSMS показывает обе разновидности SET запрещены, но ВЫБРАТЬ версия допускается. Я хотел бы знать, является ли мой синтаксис на SET неправильным и правильное использование для OPTION, или если это просто поведение, и мне нужно использовать SELECT для установки переменной.
Ваш синтаксис на 'SET' неверен. 'OPTION' может использоваться только в автономном операторе SELECT, а не в том, что является частью' SET'. Вы можете найти [** здесь **] (https://msdn.microsoft.com/en-us/library/ms189484.aspx) полный синтаксис, поддерживаемый 'SET', включая все параметры, которые вы можете передать ему и его 'SELECT'. Кроме того, вот некоторые подробности в [** ОПЦИИ **] (https://msdn.microsoft.com/en-us/library/ms190322.aspx) –