我在python中有一些SQL任务,可能需要创建中间临时表。
是否有可能实现以下目标?
sql_command = \
f"""
select top 100 * into #tmp123 from mydb;
select top 2 * from #tmp123
"""
import pyodbc
cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER=' + "myservername")
table_spec_ret_sql = pd.read_sql(sql_command,cnxn)
此当前实现给我一个错误提示
'NoneType'对象不可迭代
答案 0 :(得分:1)
将SET NOCOUNT ON
添加到您的批次中。
sql_command = \
f"""
set nocount on;
select top 100 * into #tmp123 from mydb;
select top 2 * from #tmp123
"""
import pyodbc
cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER=' + "myservername")
table_spec_ret_sql = pd.read_sql(sql_command,cnxn)
第一条语句的行计数消息位于结果集之前,并且客户端驱动程序需要在结果集可用之前使用它。有些驱动程序会自动执行此操作,有些则不会。