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

2024-05-07

我在用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(使用前将#替换为@)

无法通过 PyODBC 连接创建数据库 的相关文章

随机推荐

  • iphone XMPP 应用程序运行后台

    我使用 XMPP 框架创建了一个聊天应用程序 当我退出应用程序 进入后台模式 时 我想接收聊天消息 并且还需要显示图标徽章 我该怎么做 您确实可以通过将基于 XMPP 框架的应用程序称为 VoIP 应用程序来在 iOS4 中的后台运行该应用
  • SBT - 运行任务来设置SettingKey

    所以我的一般问题是我想根据任务的结果设置版本密钥 但是版本密钥是在任务运行之前设置的 据我了解 一旦设置了键的值 我就无法更改它 因此我无法在我的任务中更改它 我想要做的是将任务作为发布任务的依赖项运行并更改版本的值 我觉得一定有办法做到这
  • 从列表视图启动活动

    您好 我有一个列表视图 我正在尝试通过以下方式从列表视图启动一项活动startActivity class java public class ll2 extends Activity public void onCreate Bundle
  • dplyr - 分组并选择 TOP x %

    使用 dplyr 包和函数sample frac可以从每个组中抽取一定比例的样本 我需要的是首先对每个组中的元素进行排序 然后从每个组中选择前 x 有一个功能top n 但这里我只能确定行数 并且我需要一个相对值 例如 以下数据按齿轮分组并
  • Python - 在和不在列表中语法错误

    我正在尝试从另一个现有的浮点数列表构建一个新的浮点数列表 通过示例更容易识别第一个列表的预期内容 price list 39 99 74 99 24 99 49 99 预期的后期功能 print new price list gt gt 2
  • java中filewriter的flush和close函数之间的区别

    我需要知道Java中的flush和close函数之间的确切区别是什么 当在写入文件期间将数据转储到文件中时 请提供一个例子 flush just确保所有缓冲数据都写入磁盘 在这种情况下 更一般地说 通过您正在使用的任何 IO 通道刷新 之后
  • Windows 7 VM 上的 Android Studio 虚拟设备不兼容

    我的计算机上有一个 VirtualBox VM 该 VM 运行 Windows 7 64 位 我在该虚拟机上安装了 Android Studio 我只有基本的 Hello World 应用程序 当我尝试运行 AVD 时 我收到以下消息 运行
  • java:在目录和子目录中根据文件名搜索文件

    我需要根据目录树中的名称查找文件 然后显示该文件的路径 我发现了类似的东西 但它根据扩展名进行搜索 谁能帮助我如何根据我的需要重新编写这段代码 谢谢 public class filesFinder public static void m
  • 使用传感器方向

    在我的应用程序中 我想显示设备方向 例如北 南 东 西 为此 我使用加速度计和磁传感器并尝试使用以下代码 public class MainActivity extends Activity implements SensorEventLi
  • 数据库被锁定?

    我如何修复数据库锁 因为我的测试没有通过 它使同一类别中的一堆测试失败 谢谢 1 UsersController GET edit should have a link to change the Gravatar Failure Erro
  • 在 Go 中修改导入的库

    我的问题 弹性节拍 https www elastic co products beats是一个用 Go 编写的日志传送程序的开源项目 它具有多种日志输出功能 包括控制台 Elasticsearch 和 Redis 我想将我自己的输出添加到
  • 使用 array.map 后如何运行函数?

    我想做的是在使用 array map 之后运行一个函数 理论上 我应该能够在 array map 之后运行 但是 由于某种原因 它在 array map 完成之前运行该函数 我该如何解决 这是我的代码 var channelIds chan
  • Android 地理围栏广播接收器

    我已经使用 GoogleApiClient 实现了地理围栏 gt 触发时 服务会连接到 GoogleApiClient 并添加多个地理围栏 在我将另一个 IntentService 注册为地理围栏事件的 回调 之前 这或多或少有效 但仅限于
  • 获取引用而不下载对象[重复]

    这个问题在这里已经有答案了 我想检查 origin master 是否与我的 HEAD 不同 I do not想要git fetch 因为它可能非常昂贵 我滥用 git 的方式使得成本高得令人望而却步 任何允许我从远程获取提交列表或顶部提交
  • PySpark 用数组替换 Null

    通过 ID 连接后 我的数据框如下所示 ID Features Vector 1 50 Array 1 1 2 3 2 50 Null 我最终得到 向量 列中某些 ID 的空值 我想用 300 维的零数组替换这些 Null 值 与非空向量条
  • 用于多个项目构建的多个设置 gradle 文件

    我有以下项目结构 gt Starnderd Location gt Project1 gt settings gradle gt build gradle gt Subproject11 gt build gradle gt Subproj
  • Terraform azurerm 计划 start_time 始终在新部署时重置

    我正在尝试获取资源azurerm automation schedule在特定时间部署 ex 18 00 每月发生 我正在使用以下代码 locals update time 18 00 update date formatdate YYYY
  • 即使给出了公钥,Gitosis 也需要密码

    我在 Archlinux 上尝试配置 gitosis 时遇到了一些问题 http wiki archlinux org index php Setting Up Git ACL Using gitosis http wiki archlin
  • Pandas .describe() 仅返回 int 数据帧的 4 个统计信息(计数、唯一、顶部、频率)...没有最小值、最大值等

    为什么会这样呢 我的数据看起来非常简单明了 它是一个 1 列的整数数据帧 但是 describe 只返回计数 唯一 顶部 频率 而不是最大值 最小值和其他预期输出 注意 describe 功能与其他项目 数据集中的预期相同 pandas 似
  • 无法通过 PyODBC 连接创建数据库

    我在用pyodbc in python 2 7 with MS SQL Server 2008R 这是我创建数据库的代码 SQL代码单独在SQL中工作正常 但在python中执行时崩溃 SQL command IF EXISTS SELEC