首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Python 操作 MS SQL 資料庫鏡像模式:pymssql 與 sqlcmd 替代方案

     編輯:程式設計綜合問答

問題

使用 pymssql 執行 ALTER DATABASE testdb SET SAFETY OFF 時出現錯誤:ALTER DATABASE statement not allowed within multi-statement transaction。

原因

這類 ALTER DATABASE 語句不能在多語句交易中執行,而 pymssql 預設可能開啟了交易。

解決方法

使用 Python 的 popen 呼叫 sqlcmd.exe 來執行這類語句:

import subprocess
subprocess.call(['sqlcmd', '-S', '127.0.0.1', '-U', 'sa', '-P', 'pwd', '-d', 'master',
                 '-Q', 'ALTER DATABASE testdb SET SAFETY OFF'])
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved