无法通过PyODBC连接创建数据库

时间:2014-12-12 09:39:31

标签: python sql sql-server pyodbc

我在pyodbc python 2.7使用MS SQL Server 2008R

这是我创建数据库的代码(SQL代码在SQL中运行良好,但在python中执行时崩溃)

SQL_command = """
                IF EXISTS(SELECT * FROM sys.databases WHERE [name] = 'NewDatabase')
                    DROP DATABASE NewDatabase
              """

conn.cursor.execute(SQL_command)

SQL_command = """
                CREATE DATABASE NewDatabase
                ON     
                (
                     NAME = 'NewDatabase_data'
                ,    FILENAME='D:\MSSQL\DATA\NewDatabase_data.mdf' 
                ,    SIZE = 4096KB 
                ,    FILEGROWTH = 4096KB 
                ) 
                LOG ON  
                (
                    NAME = 'NewDatabase_log'
                ,   FILENAME='D:\MSSQL\LOG\NewDatabase_log.ldf' 
                ,    SIZE = 4096KB 
                ,    FILEGROWTH = 10%
                ) 
                COLLATE SQL_Latin1_General_CP1_CI_AS
              """

conn.cursor.execute(SQL_command)

SQL_command = """
                ALTER DATABASE 
                    NewDatabase
                SET RECOVERY SIMPLE
              """

conn.cursor.execute(SQL_command)

但是,我收到了以下错误消息:

  

pyodbc.ProgrammingError:(' 42000',' [42000] [Microsoft] [ODBC SQL   服务器驱动程序] [SQL Server]不允许CREATE DATABASE语句   多语句交易。 (226)(SQLExecDirectW)')

我可以知道我的代码有什么问题吗?

非常感谢。

=============================================== =====================================

因此,在收到@Matthias的建议后,我在commit之后执行了drop database,然后错误消息变为:

  

pyodbc.ProgrammingError:(' 42000'," [42000] [Microsoft] [ODBC SQL   服务器驱动程序] [SQL Server] CREATE FILE遇到操作系统   错误123(无法检索此错误的文本。原因:15105)while   尝试打开或创建物理文件   ' d:\ MSSQL \ DATA \ NewDatabase_data.mdf&#39 ;. (5123)   (SQLExecDirectW); [42000] [Microsoft] [ODBC SQL Server驱动程序] [SQL   服务器] CREATE DATABASE失败。列出的某些文件名不能   创建。检查相关错误。 (1802)&#34)

0 个答案:

没有答案