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

SQL Server中EXEC执行动态SQL时错误解析数据库名称问题

问题原因及解决办法

错误原因

直接用EXEC @query执行动态SQL时,SQL Server会把变量@query的内容识别为存储过程名称或者数据库操作对象,而非要执行的SQL语句。所以它错误地把整个语句的开头部分SELECT Count(*) FROM ReportServer$DEVSVR1当成了数据库名称,触发了“数据库不存在”的报错。

解决方法

  • 用括号包裹变量,让SQL Server将其解析为SQL语句执行:
    EXEC(@query);
    
  • 更推荐使用官方推荐的sp_executesql存储过程来执行动态SQL,这种方式在处理带参数的动态SQL时更安全、更规范:
    EXEC sp_executesql @query;
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 17:07:00