Pyodbc正确连接到同一数据库。当我运行
SELECT name FROM sys.databases;
SELECT name FROM master.dbo.sysdatabases;
我获得了在MSSQLSMS中可以看到的所有数据库的列表。
[当我在SSMS中查看事件事件探查器时,可以看到Pyodbc在与SSMS相同的同一服务器上的同一数据库上执行代码操作。我看到我的create table语句,select语句,它们正在Pyodbc中以Python运行,并在SQL服务器上执行。
所以为什么我看不到在SSMS中创建的表?为什么当我在SSMS中运行相同的查询时,看不到使用Pyodbc创建的表?
我非常困惑。 Pyodbc似乎正确连接到我的本地SQL服务器,并在其上执行SQL代码,但是我无法使用SSMS查看结果。我可以在Pyodbc上找到表格,Pyodbc和SSMS都告诉我他们在同一地方看,但是SSMS看不到Pyodbc所做的任何事情。
编辑:已解决
conn.autocommit=True
是Pyodbc进行永久更改所必需的。
SQL Server允许某些DDL语句(例如CREATE TABLE
)在事务内部执行。因此,如果我们在连接上没有指定commit()
,我们还必须记住autocommit=True
这些更改。