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

发布于 2021-01-29 14:10:04

我正在使用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)’)

我试图在SQL Server中运行SQL代码,并且工作正常。

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

非常感谢。

关注者
0
被浏览
137
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    您的错误说

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

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

    conn.autocommit = true
    // do stuff
    conn.autocommit = false
    

    在pyodbc
    FAQ中有关于此的条目



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看