2012-03-29 23 views
5

私はこのエラーを受け取ったpymssqlを使用してデータベースを作成しようとしています。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') 

を与えます?

+0

'cur.execute("データベース作成%s "%(self.getsql( 'dbname')、conn)'を試してください。コール。 –

+1

CREATE DATABASEの前に他の文を実行している場合は、実行前に現在のトランザクションを 'commit()'する必要があります。 – Amber

答えて

5

問題は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) 

この内excutedすることができないということでした。不思議なことに、pymssqlには書かれていません... hmmm

関連する問題