将值分配给局部变量时,我发现在SELECT语句上使用OPTION时会出现一些奇怪的语法行为。语句以SELECT开头时,似乎允许OPTION,但如果它是SET命令的一部分,则不允许使用OPTION。
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的两个变体均被禁止,但SELECT版本被允许。我想知道我在SET上的语法是否错误以及OPTION的正确用法是什么,或者这仅仅是行为,我需要使用SELECT设置变量。
可以在SELECT,DELETE,UPDATE和MERGE语句中指定此子句。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句