Sql server 为什么T-SQL打印语句会导致ResourceClosedError:此结果对象不返回行。它已自动关闭
我正在从Jupyter调用SQL Server SP,该SP如下所示: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
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会破坏一切。