我正在使用 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 Driver][SQL Server]Cannot perform a backup or restore operation within a transaction. (3021) (SQLExecDirectW);
[42000] [Microsoft][ODBC SQL Server Driver][SQL Server]BACKUP DATABASE is terminating abnormally. (3013)')
我尝试在 SQL Server 中运行 SQL 代码,它运行良好。
我可以知道我的代码有什么问题吗?
非常感谢。
最佳答案
你的错误是
Cannot perform a backup or restore operation within a transaction.
在pyodbc中默认启动事务,那么如何在不创建事务的情况下执行查询呢?只需打开自动提交:
conn.autocommit = true
// do stuff
conn.autocommit = false
pyodbc FAQ 有 an entry about this .
关于python - 无法在事务中执行备份或还原操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27443414/