首页 > 解决方案 > 为什么 T-SQL 打印语句会导致 ResourceClosedError: This result object does not return rows。它已自动关闭

问题描述

我从 Jupyter 调用 SQL Server SP,SP 看起来像这样:

    ALTER
     procedure [dbo].[proc_Report_QuarterlyDistribution02]  (@quarter int, @year int, @group int)
    as          

            declare @total int,
            @date date

            set @date = cast(@year as varchar(4)) + '-01-01'
            set @date = dateadd(quarter, @quarter - 1, @date)

            print @date

            select @total = count(1)
            from DimMedical
            where ServiceDate between
            DATEADD(quarter, -9,@date) and @date
    and carriercode = @group
    and Category = 'Physicians'

SP 继续 - 这不是问题。

问题是线路

    print @date

问题为什么打印语句会导致错误:

    ResourceClosedError: This result object does not return rows. It has been closed automatically.

标签: sql-serverpandassqlalchemy

解决方案


为什么打印语句会导致错误:“此结果对象不返回行”

这可能是您正在使用的客户端库中的一个限制。一些客户端库在看到消息时停止查找结果集。

删除打印语句,升级您的客户端库(未提及),或者使用 INSERT ... EXEC 将存储过程插入到表中,然后在后续查询中从中进行选择。


推荐阅读