Python 无法通过PyODBC连接创建数据库
我正在Python 无法通过PyODBC连接创建数据库,python,sql,sql-server,pyodbc,Python,Sql,Sql Server,Pyodbc,我正在python2.7中使用pyodbc和mssqlserver2008r 下面是我创建数据库的代码(SQL代码,它单独在SQL中运行良好,但在python中执行时崩溃) 但是,我收到以下错误消息: pyodbc.ProgrammingError:('42000','[42000][Microsoft][ODBC SQL 服务器驱动程序][SQL Server]中不允许使用CREATE DATABASE语句 多语句事务。(226)(SQLExecDirectW)’) 我可以知道我的密码有什么问
python2.7
中使用pyodbc
和mssqlserver2008r
下面是我创建数据库的代码(SQL代码,它单独在SQL中运行良好,但在python中执行时崩溃)
但是,我收到以下错误消息:
pyodbc.ProgrammingError:('42000','[42000][Microsoft][ODBC SQL
服务器驱动程序][SQL Server]中不允许使用CREATE DATABASE语句
多语句事务。(226)(SQLExecDirectW)’)
我可以知道我的密码有什么问题吗
非常感谢
====================================================================================
因此,在接受@Matthias的建议后,我在删除数据库之后执行了提交
,然后错误消息变成:
pyodbc.ProgrammingError:('42000',“[42000][Microsoft][ODBC SQL
服务器驱动程序][SQL Server]创建操作系统中遇到的文件
错误123(检索此错误的文本失败。原因:15105)正在
正在尝试打开或创建物理文件
“D:\MSSQL\DATA\NewDatabase\u DATA.mdf.”(5123)
(SQLExecDirectW);[42000][Microsoft][ODBC SQL Server驱动程序][SQL
服务器]创建数据库失败。无法创建列出的某些文件名
已创建。请检查相关错误。(1802)”
执行DROP DATABASE
和CREATE DATABASE
命令后,尝试执行COMMIT
。@Matthias谢谢您的回复。我试过你的建议,还是不行。但错误已更改,新的错误消息已发布,请查看。非常感谢。请尝试:autocommit=True
请参阅pyodbc.connect:(str,autocommit='False',ansi='False',timeout='0',**kwargs)
。只是猜测一下:看起来您的程序在此文件夹中没有写权限。@Matthias谢谢您的回复。是的,我有在文件夹中写作的权限。
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)