繁体   English   中英

通过pyodbc在MS SQL中创建存储过程

[英]Creating stored procedure in MS SQL through pyodbc

我试图通过python代码在mssql中的master中创建一个存储过程。 以下是我的代码:

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)") 

有人可以帮我解决这个问题吗?

由于您的连接字符串已经指定了master数据库(即database=master; ),因此只需删除即可

USE master
GO

来自您的查询。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM