Sql server 为什么T-SQL打印语句会导致ResourceClosedError:此结果对象不返回行。它已自动关闭

Sql server 为什么T-SQL打印语句会导致ResourceClosedError:此结果对象不返回行。它已自动关闭,sql-server,pandas,sqlalchemy,Sql Server,Pandas,Sqlalchemy,我正在从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(@ye

我正在从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.
为什么print语句会导致错误:此结果对象不返回行

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


删除print语句,升级未提及的客户端库,或者使用insert…EXEC将存储过程插入表中,然后在后续查询中从中选择。

听起来您的过程没有返回任何行。不要使用“打印”,如果您想让它返回行,请使用“选择”。@SeanLange yes lol。完整的东西既可以打印也可以返回行。指纹把它弄坏了。显然,我需要删除print语句,但我不知道为什么print会破坏一切。