从 Python 创建 SQL Server 数据库

2023-09-30 12:22
我正在使用 Python 和 pywin32 的 adodbapi 编写一个脚本来创建 SQL Server 数据库及其所有关联的表、视图和过程。问题是Python 的DBAPI 要求cursor.execute() 包含在仅由cursor.commit() 提交的事务中,并且您无法在用户事务中执行drop 或create 数据库语句。关于如何解决这个问题有什么想法吗? 编辑: AdodBapi 的 connect() 方法或其cursor() 方法似乎没有任何类似于自动提交参数的内容。我很乐意使用 pymssql 而不是 adodbapi,只不过它将 char 和 varchar 数据类型截断为 255 个字符。 我在发帖之前尝试过这个;这是回溯。
回溯(最近一次调用最后一次):
  文件“m.genealogy-computer-tips.com”,第 39 行,位于 
    cur.execute("创建数据库虚拟数据库")
  文件“C:m.genealogy-computer-tips.com”,第 713 行,执行中
    self._executeHelper(操作,False,参数)
  文件“C:m.genealogy-computer-tips.com”,第 664 行,位于 _executeHelper 中
    self._raiseCursorError(数据库错误,tracebackhistory)
  文件“C:m.genealogy-computer-tips.com”,第 474 行,位于 _raiseCursorError 中
    呃(self.conn,自我,错误类,错误值)
  文件“C:m.genealogy-computer-tips.com”,第 60 行,位于 standardErrorHandler 中引发错误类(错误值)
adodbapi.adodbapi.DatabaseError:
--ADODBAPI
回溯(最近一次调用最后一次):
   文件“C:m.genealogy-computer-tips.com”,第 650 行,位于 _executeHelper 中
    adoRetVal=self.cmd.Execute()
   文件“”,第 3 行,执行中
   文件“C:m.genealogy-computer-tips.com”,第 258 行,在 _ApplyTypes_ 中
    结果 = self._oleobj_.InvokeTypes(*(dispid, LCID, wFlags, retType, argTypes) + args)
 com_error: (-2147352567, '发生异常。', (0, u'Microsoft SQL Native Client', u'多语句事务中不允许创建数据库语句。', None, 0, -2147217900), None)
-- 命令:“创建数据库虚拟数据库”
-- 带参数:无