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

SSRS调用存储过程报错:ExecuteReader要求连接处于打开可用状态

问题原因分析

针对你遇到的SSRS调用存储过程报错ExecuteReader requires an open and available Connection. The connection's current state is closed.,但SSMS执行正常、直接嵌入脚本也能运行的情况,常见原因有以下几种:

  • 存储过程中手动关闭了数据库连接:检查存储过程代码,是否存在CLOSE、DISCONNECT这类主动关闭连接的语句。SSMS执行存储过程后会自动重新初始化连接,但SSRS的报表执行依赖持续的连接上下文,一旦连接被主动关闭,后续读取数据的操作就会触发错误。
  • 存储过程包含干扰连接池的逻辑:如果存储过程里修改了连接池相关配置(比如SET CONNECTION_TIMEOUT),或是使用了异步执行逻辑,可能导致SSRS的连接被提前回收,造成连接状态异常。
  • 跨数据库操作导致连接上下文混乱:若存储过程涉及跨数据库访问,且存在切换数据库后未恢复上下文的情况(比如用USE [OtherDB]切换后未切回原库),可能让SSRS误以为连接已关闭。
  • SSRS数据源的凭据设置冲突:虽然直接执行脚本正常,但调用存储过程时,若SSRS数据源启用了“模拟登录”或“使用特定凭据”,可能导致存储过程执行时的连接权限或状态与直接执行脚本不同,进而触发连接关闭报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 18:03:11