【发布时间】:2020-03-27 15:11:25
【问题描述】:
是否可以从存储过程中返回多个数据集?
例如
CREATE PROCEDURE [dbo].[usp_vvvv] (....)
.....
SELECT *
FROM #_temp_client_details
SELECT *
FROM #_temp_address_details
DROP TABLE #_temp_client_details
DROP TABLE #_temp_address_details
....
END TRY
BEGIN CATCH
..
END CATCH
END
在我的场景中,我需要从 3 个不同的临时表中获取数据集到我的 python 代码中。
所有 3 个不同的临时表都是使用相同的表、相同的参数和一些操作构建的。所以,我不想创建 3 个单独的存储过程(因为所有 3 个存储过程都将使用 90% 相同的 SQL 逻辑)。
我目前从以下存储过程之一获取输出:
import pandas as pd
def execute():
query='exec [zzz].[dbo].[sp_zzz]?, ?, ?, ?'
df = pd.read_sql(query, cnxn, params=[astart, aend, lstart,
lend])
writer = pd.ExcelWriter('output.xlsx')
df.to_excel(writer, index=False, sheet_name='client')
writer.save()
有可能吗?如果是这样,我怎样才能将所有表输出到熊猫中?
【问题讨论】:
-
这取决于您使用的数据库。看起来您使用的是 Microsoft SQL Server,对吗?
-
@gnud 是的..我正在使用 MsSQL
-
@gnud 任何示例我如何使用 python/pandas+ mssql stroedproc 实现?
标签: python sql sql-server pandas