无法在事务中执行备份或还原操作

Cha*_*ame 4 python sql pyodbc

我使用PyODBC来备份我的数据库,使用以下代码:

SQL_command = """
                BACKUP DATABASE [MyDatabase]
                TO DISK = N'D:\MSSQL\BACKUP\MyDatabase_20141212.bak' WITH
                      NOFORMAT
                ,     NOINIT
                ,     NAME = N'MyDatabase_20141212'
                ,     SKIP
                ,     REWIND
                ,     NOUNLOAD
                ,     STATS = 10
              """

conn.cursor.execute(SQL_command)

conn.cursor.commit()
Run Code Online (Sandbox Code Playgroud)

上面的代码给我一个错误信息:

pyodbc.ProgrammingError:

('42000','[42000] [Microsoft] [ODBC SQL Server驱动程序] [SQL Server]无法在事务中执行备份或还原操作.(3021)(SQLExecDirectW);

[42000] [Microsoft] [ODBC SQL Server驱动程序] [SQL Server] BACKUP DATABASE异常终止.(3013)')

我试图在SQL Server中运行SQL代码,它工作正常.

我可以知道我的代码有什么问题吗?

非常感谢.

And*_*zlo 7

你的错误说

无法在事务中执行备份或还原操作.

事务默认在pyodbc中启动,那么如何在不创建事务的情况下执行查询?只需打开自动提交:

conn.autocommit = true
// do stuff
conn.autocommit = false
Run Code Online (Sandbox Code Playgroud)

pyodbc FAQ有一个关于此的条目.