8

我试图使用 pymssql 创建一个数据库,但我收到了这个错误。

cur.execute("CREATE DATABASE %s;" % self.getsql('dbname'), conn)

*** OperationalError: (226, 'CREATE DATABASE statement not allowed within multi-
statement transaction.DB-Lib error message 226, severity 16:\\nGeneral SQL Serve
r error: Check messages from the SQL Server\\n')

这是什么意思 ??

4

1 回答 1

9

问题是 cur.execute 每次都启动一个事务,但不能在事务中执行“CREATE DATABASE”操作

http://social.msdn.microsoft.com/Forums/pl/adodotnetdataproviders/thread/594ff024-8af6-40b3-89e0-53edb3ad7245

>>> connection.autocommit(True)
>>> cursor = connection.cursor()
>>> cursor.execute("CREATE DATABASE Foo")
>>> connection.autocommit(False)

这行得通。奇怪的是,它没有记录在 pymssql 中……嗯

于 2012-03-29T21:58:39.300 回答