2012-03-29 2 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)'를 시도하고,'getsql' 요구. –

+1

CREATE DATABASE 명령문 이전에 다른 명령문을 실행하고 있다면 명령을 실행하기 전에 현재 트랜잭션을'commit() '해야 할 수도 있습니다. – Amber

답변

5

문제는 cur.execute 트랜잭션마다 시작하지만 '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