Pyodbc может создавать / изменять таблицы, но я не вижу их в SSMS - PullRequest
0 голосов
/ 30 октября 2019

Pyodbc правильно подключается к той же базе данных. Когда я запускаю

SELECT name FROM sys.databases;

SELECT name FROM master.dbo.sysdatabases;

, я получаю список всех БД, которые я вижу в MSSQLSMS.

Когда я смотрю на свой профилировщик событий в SSMS, я вижу, что Pyodbc выполняет действия с кодом в той же базе данных на том же сервере, что и в SSMS. Я вижу свои операторы создания таблицы, операторы выбора, которые я выполняю на Python с Pyodbc и выполняю на моем сервере SQL.

Так почему я не вижу таблицы, созданные в SSMS? Почему, когда я выполняю те же запросы в SSMS, я не вижу таблицу, которую я создал с помощью Pyodbc?

Я очень смущен. Кажется, что Pyodbc правильно подключается к моему локальному серверу SQL и выполняет на нем код SQL, но я не могу просмотреть результаты с помощью SSMS. Я могу найти таблицу с Pyodbc, и Pyodbc и SSMS оба говорят мне, что они смотрят в одни и те же места, но SSMS не видит ничего, что Pyodbc сделал.

РЕДАКТИРОВАТЬ: Решено

conn.autocommit=True требуется для Pyodbc для внесения постоянных изменений.

1 Ответ

0 голосов
/ 31 октября 2019

SQL Server позволяет некоторым операторам DDL (например, CREATE TABLE) выполняться внутри транзакции. Поэтому мы также должны помнить commit() эти изменения, если мы не указали autocommit=True в Соединении.

...