Создание хранимой процедуры в MS SQL через pyodbc - PullRequest
0 голосов
/ 16 декабря 2018

Я пытаюсь создать процедуру хранения в мастере в MSSQL через код Python.Ниже приведен мой код:

import pyodbc

conn = pyodbc.connect("driver={SQL Server};server=localhost; database=master; trusted_connection=true",
                      autocommit=True) 
cursor = conn.cursor()
sqlcommand = """
                USE master
                GO
                CREATE PROCEDURE sp_myCustomSystemProc
                AS
                BEGIN
                    PRINT 'myCustomCode'
                END
                GO
                EXEC sp_ms_marksystemobject 'sp_myCustomSystemProc'
             """     
cursor.execute(sqlcommand)

cursor.commit()

conn.commit()

После запуска этого кода Python я получаю эту ошибку:

Traceback (последний последний вызов):

File "auto_complete.py", line 27, in <module>
  cursor.execute(sqlcommand)  
pyodbc.ProgrammingError: ('42000', "[42000] [Microsoft][ODBC SQL Server Driver][SQL Server]
Incorrect syntax near 'GO'. (102) (SQLExecDirectW); 
[42000] [Microsoft][ODBC SQL Server Driver][SQL Server]
'CREATE/ALTER PROCEDURE' must be the first statement in a query batch. (111); 
[42000] [Microsoft][ODBC SQL Server Driver][SQL Server]
Incorrect syntax near 'GO'. (102); 
[42000] [Microsoft][ODBC SQL Server Driver][SQL Server]
Incorrect syntax near 'sp_myCustomSystemProc'. (102)")

Может кто-нибудь помочь мне решить эту проблему?

1 Ответ

0 голосов
/ 16 декабря 2018

Поскольку в строке подключения уже указана база данных master (т. Е. database=master;), просто удалите

USE master
GO

из вашего запроса.

...