如何用SQL或其他方法访问存储过程的第二个结果集?Python\pyodbc
我正在使用python和pyodbc,想要访问一个存储过程的第二个结果集。根据我的了解,pyodbc似乎不支持多个结果集。而且,我不能修改这个存储过程。有没有什么办法可以通过SQL或者其他方法来访问第二个结果集?比如说,创建一个新的存储过程,只返回第一个存储过程的第二个结果集?
2 个回答
0
这里有几种可能的方法,具体可以参考这个链接。如果你得到的结果集都是一样的,可能可以用INSERT...EXEC这种方式。否则,OPENQUERY也许能帮到你。
20
没必要搞得太复杂。只需要使用游标的 nextset()
方法 就可以了:
import pyodbc
db = pyodbc.connect ("")
q = db.cursor ()
q.execute ("""
SELECT TOP 5 * FROM INFORMATION_SCHEMA.TABLES
SELECT TOP 10 * FROM INFORMATION_SCHEMA.COLUMNS
""")
tables = q.fetchall ()
q.nextset ()
columns = q.fetchall ()
assert len (tables) == 5
assert len (columns) == 10