Ошибка «Неверное имя объекта» при вставке в SQL Server из pyodbc - PullRequest
1 голос
/ 05 июня 2019

Я пытаюсь вставить некоторые данные в базу данных SQL Server с помощью модуля pyodbc.

У меня работает строка подключения.

В следующем коде перечислены два столбца в таблице.

 for row in cursor.columns(table='InvUtil'):
     print (row.column_name)

Я вижу следующие два столбца в таблице InvUtil:

server

termss

Затем я пытаюсьвставить данные с помощью следующей команды:

 cursor.execute("INSERT INTO InvUtil(server, termss) values (?, ?)", 'ten', 'eleven')

Я получаю следующую ошибку.Похоже, у него проблемы с именем таблицы InvUtil.

Traceback (most recent call last):
  File "SQLpydobc.py", line 61, in <module>
    cursor.execute("INSERT INTO InvUtil(server, termss) values (?, ?)", 'ten', 'eleven')
pyodbc.ProgrammingError: ('42S02', "[42S02] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]**Invalid object name 'InvUtil'**. (208) (SQLExecDirectW)")

Я ожидаю, что скрипт будет работать без ошибок.У меня есть команда commit позже в скрипте, поэтому я должен увидеть данные в столбцах.

1 Ответ

1 голос
/ 05 июня 2019

Возможно, укажите полное имя таблицы со схемой / дБ, как в dbo.InvUtil?

Или, возможно, укажите имя базы данных по умолчанию в строке подключения (Database=dbo или InitialCatalog=dbo).

...