我正在使用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()
上面的代码给我一个错误消息:
pyodbc.ProgrammingError: (“ 42000”,“ [42000] [Microsoft] [ODBC SQL Server驱动程序] [SQL Server]无法在事务内执行备份或还原操作。(3021)(SQLExecDirectW); [42000] [Microsoft] [ODBC SQL Server驱动程序] [SQL Server] BACKUP DATABASE异常终止。(3013)’)
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代码,并且工作正常。
我可以知道我的代码有什么问题吗?
非常感谢。
您的错误说
无法在事务内执行备份或还原操作。
默认情况下,事务在pyodbc中启动,那么如何在不创建事务的情况下执行查询?只需打开自动提交:
conn.autocommit = true // do stuff conn.autocommit = false
在pyodbc FAQ中有关于此的条目。