Pyodbc 可以 create/alter 表,但我在 SSMS 中看不到它们
Pyodbc can create/alter tables, but I can't see them in SSMS
Pyodbc 正确连接到同一个数据库。当我 运行
SELECT name FROM sys.databases;
SELECT name FROM master.dbo.sysdatabases;
我得到了我在 MSSQLSMS 中可以看到的所有数据库的列表。
当我在 SSMS 中查看我的事件探查器时,我可以看到 Pyodbc 正在对同一服务器中的同一数据库执行代码操作,就像我在 SSMS 中查看的一样。我看到我的 create table 语句,select 语句,我正在 运行ning in Python with Pyodbc,在我的 SQL 服务器上执行。
为什么我看不到我在 SSMS 中创建的 table?为什么,当我在 SSMS 中 运行 相同的查询时,我没有看到我使用 Pyodbc 创建的 table?
我很困惑。 Pyodbc 似乎正确连接到我的本地 SQL 服务器,并在其上执行 SQL 代码,但我无法使用 SSMS 查看结果。我可以用 Pyodbc 找到 table,Pyodbc 和 SSMS 都告诉我他们正在查看相同的位置,但 SSMS 看不到 Pyodbc 所做的任何事情。
编辑:已解决
Pyodbc 需要 conn.autocommit=True
才能进行永久更改。
SQL 服务器允许在事务内执行一些 DDL 语句(例如,CREATE TABLE
)。因此,如果我们没有在连接上指定 autocommit=True
,我们还必须记住 commit()
这些更改。
Pyodbc 正确连接到同一个数据库。当我 运行
SELECT name FROM sys.databases;
SELECT name FROM master.dbo.sysdatabases;
我得到了我在 MSSQLSMS 中可以看到的所有数据库的列表。
当我在 SSMS 中查看我的事件探查器时,我可以看到 Pyodbc 正在对同一服务器中的同一数据库执行代码操作,就像我在 SSMS 中查看的一样。我看到我的 create table 语句,select 语句,我正在 运行ning in Python with Pyodbc,在我的 SQL 服务器上执行。
为什么我看不到我在 SSMS 中创建的 table?为什么,当我在 SSMS 中 运行 相同的查询时,我没有看到我使用 Pyodbc 创建的 table?
我很困惑。 Pyodbc 似乎正确连接到我的本地 SQL 服务器,并在其上执行 SQL 代码,但我无法使用 SSMS 查看结果。我可以用 Pyodbc 找到 table,Pyodbc 和 SSMS 都告诉我他们正在查看相同的位置,但 SSMS 看不到 Pyodbc 所做的任何事情。
编辑:已解决
Pyodbc 需要conn.autocommit=True
才能进行永久更改。
SQL 服务器允许在事务内执行一些 DDL 语句(例如,CREATE TABLE
)。因此,如果我们没有在连接上指定 autocommit=True
,我们还必须记住 commit()
这些更改。