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

Laravel执行SQL Server存储过程遇IMSSP错误,求解决方案

解决Laravel调用SQL Server存储过程报错:SQLSTATE[IMSSP]: The active result for the query contains no fields

这个错误的核心原因是你用了select()方法执行不返回结果集的存储过程——select()是Laravel专门用于获取查询结果的方法,而你的pr_stop存储过程应该是执行状态变更类的操作(而非查询数据),没有返回字段/结果集,因此触发报错。

修复方案

将执行存储过程的方法从select()改为statement(),statement()专门用于执行不返回结果的SQL语句(比如执行存储过程做更新、状态变更等操作):

修改后的代码:

public function stopLine(Request $request){
    $stop = Engine::where([['code', $request->engine]])->first();
    $quest = [$stop->id];

    // 改用statement方法执行无返回结果的存储过程
    DB::connection('mssql')->statement('EXEC pr_stop ?', $quest);

    return $this->sendResponse($stop, 'Data successfully');
}

额外检查点

  • 确认存储过程pr_stop的逻辑:如果该存储过程确实需要返回数据,检查存储过程内部是否包含SELECT语句返回结果集,确保结果集字段正常。
  • 参数类型匹配:确保$stop->id的类型与存储过程pr_stop的参数类型一致(比如都是整数类型)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 05:57:39