有一个应用,需要实现sqlserver 2000备份和恢复,使用pymssql,和pyodbc均无法备份,请求帮助
pymssql代码及报错如下
>>> import pymssql >>> con=pymssql.connect(host='.',user='netcafe',password='123456',database='mast er') >>> cur=con.cursor() >>> cur.execute(r"backup database local to disk='d:\a.bak'") Traceback (most recent call last): File "<stdin>", line 1, in <module> File "pymssql.pyx", line 465, in pymssql.Cursor.execute (pymssql.c:7190) pymssql.OperationalError: (3021, 'Cannot perform a backup or restore operation w ithin a transaction.DB-Lib error message 20018, severity 16:\nGeneral SQL Server error: Check messages from the SQL Server\nDB-Lib error message 20018, severity 16:\nGeneral SQL Server error: Check messages from the SQL Server\n') >>>
使用pyodbc 会出现 backup无法在事务中执行的提示如下
>>> import pyodbc >>> con=pyodbc.connect('DRIVER={SQL Server};SERVER=.;DATABASE=master;UID=netcafe ;PWD=123456') >>> cur=con.cursor() >>> cur.execute('r"backup database local to disk='d:\a.bak'") File "<stdin>", line 1 cur.execute('r"backup database local to disk='d:\a.bak'") ^ SyntaxError: invalid syntax >>> cur.execute(r"backup database local to disk='d:\a.bak'") Traceback (most recent call last): File "<stdin>", line 1, in <module> pyodbc.ProgrammingError: ('42000', '[42000] [Microsoft][ODBC SQL Server Driver][ SQL Server]\xb2\xbb\xc4\xdc\xd4\xda\xca\xc2\xce\xf1\xc4\xda\xb2\xbf\xd6\xb4\xd0\ xd0\xb1\xb8\xb7\xdd\xbb\xf2\xbb\xb9\xd4\xad\xb2\xd9\xd7\xf7\xa1\xa3 (3021) (SQLE xecDirectW); [42000] [Microsoft][ODBC SQL Server Driver][SQL Server]BACKUP DATAB ASE \xb2\xd9\xd7\xf7\xd2\xec\xb3\xa3\xd6\xd5\xd6\xb9\xa1\xa3 (3013)')
使用 _mssql依旧出现和使用pymssql一样的提示
求助
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
con.autocommit(True)
cur=con.cursor()
cur.execute(sql)
con.autocommit(False)
我也遇到了这个问题。解决办法就是这个,运行没问题。
参考来源:https://stackoverflow.com/questions/9918129/how-can-i-create-a-database-using-pymssql