Pyodbc可以创建/更改表,但在SSMS中看不到它们

时间:2019-10-30 20:43:14

标签: python sql-server ssms pyodbc

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进行永久更改所必需的。

1 个答案:

答案 0 :(得分:0)

SQL Server允许在事务内执行某些DDL语句(例如CREATE TABLE)。因此,如果我们未在Connection上指定commit(),我们还必须记住autocommit=True那些更改。