You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL插入JSON数据时报错Must declare the scalar variable "@jsontest"原因求解

错误含义

这是SQL Server的标准执行错误,意思是当前执行会话中不存在名为@jsontest的已声明标量变量,SQL解析器无法识别你引用的变量,因此终止语句执行。

触发错误的常见原因

  • 变量声明语句和后续INSERT语句没有在同一个执行批次内运行。很多数据库管理工具默认仅执行你选中的代码片段,如果你只选中了INSERT部分运行,前面的DECLARE @jsontest声明没有被执行,就会触发该报错。
  • 两段代码中间存在批次分隔符GO。GO是SQL Server客户端识别的批次分割标记,会把前后代码拆为两个独立执行批次,而变量的作用域仅限声明它的当前批次,GO之后的代码无法访问前面声明的变量。
  • 小概率情况是变量名拼写错误,从你提供的代码来看变量名前后一致,可以排除这个问题。

补充说明

你现有代码的业务逻辑是正确的,用AS JSON关键字指定嵌套存储JSON对象的写法,完全符合SQL Server的OPENJSON语法规范,只要确保完整执行所有代码即可正常插入数据。


内容的提问来源于stack exchange,提问作者Divya Singh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 12:45:04