我在用pyodbc
in python 2.7
with 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)
尝试打开或创建物理文件
'D:\MSSQL\DATA\NewDatabase_data.mdf'。 (5123)
(SQLExecDirectW); [42000] [Microsoft][ODBC SQL Server 驱动程序][SQL
服务器]创建数据库失败。列出的某些文件名无法
创建的。检查相关错误。 (1802)”)
None
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)