我的代码如下:
import urllib
import sqlalchemy
from sqlalchemy.orm import sessionmaker, scoped_session
def list_dbs():
sql = """
use master;
SELECT name
FROM sys.databases;
"""
try:
odbc_connect = "DRIVER={SQL Server};Server=localhost;Database=master;port=1433"
engine = sqlalchemy.create_engine("mssql+pyodbc:///?odbc_connect=%s" % urllib.quote_plus(odbc_connect),
echo=True, connect_args={'autocommit': True})
SessionFactory = sessionmaker(bind=engine)
session = scoped_session(SessionFactory)
result = session.execute(sql)
for v in result:
print(v)
except Exception as e:
print(e)
list_dbs()
然后出现错误“此结果对象不返回行。它已自动关闭。”
但随后我删除了“使用大师”,它就起作用了:
因为我有很多数据库,所以我必须使用“使用数据库名”。有什么想法吗
您正面临GitHubhere上讨论的问题
现在,您需要分别执行
USE ...
,然后执行查询。例如:相关问题 更多 >
编程相关推荐