Sql “突然”;必须声明标量变量";运行示例代码段时

Sql “突然”;必须声明标量变量";运行示例代码段时,sql,sql-server,variables,syntax-error,sql-server-2016,Sql,Sql Server,Variables,Syntax Error,Sql Server 2016,我正在探索新的Transact-SQL JSON功能,通过在常规的SQL Server 2014管理工作室中针对SQL Server 2016 Express的干净安装运行各种示例片段。我开始了解它是如何工作的,但突然被它咬了一口 必须声明标量变量 例如,此加载代码段以前工作过: SELECT @json = BulkColumn FROM OPENROWSET (BULK 'C:\JSON\Books\book.json', SINGLE_CLOB) as j 但现在它吐出: 味精137,第

我正在探索新的Transact-SQL JSON功能,通过在常规的SQL Server 2014管理工作室中针对SQL Server 2016 Express的干净安装运行各种示例片段。我开始了解它是如何工作的,但突然被它咬了一口

必须声明标量变量

例如,此加载代码段以前工作过:

SELECT @json = BulkColumn
FROM OPENROWSET (BULK 'C:\JSON\Books\book.json', SINGLE_CLOB) as j
但现在它吐出:

味精137,第15级,状态1,第1行
必须声明标量变量“@json”

MSDN中还有更多的代码片段,当粘贴到查询窗口时,这些代码片段要么停止工作,要么不工作


为什么会这样?我打碎了什么东西吗?它与较旧的Management Studio和较新的数据库引擎有关吗?

您需要声明变量,这些可能只是演示其工作原理的示例

Declare @json nvarchar(max)
SELECT @json = BulkColumn
 FROM OPENROWSET (BULK 'C:\JSON\Books\book.json', SINGLE_CLOB) as j

我不熟悉该代码段或JSON数据类型,但这是该代码的一个完全预期的错误消息。如果没有该错误消息,该代码在过去永远不会工作。开始时缺少的代码类似于
DECLARE@JSON VARCHAR(4000)
TheGameiswar,@Nick.McDermaid,我非常确定它是有效的,所以我猜其中一个片段
声明了该变量,然后我通过重置执行上下文或其他方式“破坏”了它。