【问题标题】:Create a table in SQL-Server database using Python使用 Python 在 SQL-Server 数据库中创建表
【发布时间】:2018-08-15 13:29:25
【问题描述】:

我正在尝试使用 PYMSSQL 在 sql server 数据库中创建一个表,在我使用的脚本下方:

from os import getenv
import pymssql

server = getenv("SQLSERVER")
user = getenv("USER")
password = getenv("MYPWD")

cnxn= pymssql.connect(server, user, password, "tempdb")
cursor = cnxn.cursor()
cursor.execute("""
IF OBJECT_ID('persons', 'U') IS NOT NULL
    DROP TABLE persons
CREATE TABLE persons (
    id INT NOT NULL,
    name VARCHAR(100),
    salesrep VARCHAR(100),
    PRIMARY KEY(id)
)
""")
cursor.executemany(
    "INSERT INTO persons VALUES (%d, %s, %s)",
    [(1, 'ME', 'OTHERME'),
     (2, 'ANOTHERGUY', 'GUY'),
     (3, 'NAME', 'SURNAME')])
cnxn.commit()

但我不断收到下面的错误

----> 2 导入pymssql

ModuleNotFoundError: 没有名为“pymssql”的模块

任何提示、想法或解决方案:)

【问题讨论】:

  • 你安装了pymssql吗?尝试在命令行中使用pip freeze 并确保它被列出
  • 这似乎是一种非常糟糕的数据处理方法。您正在 tempdb 中创建一个持久表。这表明您正在将此表用作临时存储解决方案。但它有疯狂的并发问题。如果你有两个人运行这个,第二个将删除原始用户表并用新数据填充它。我认为真正的问题是您的方法,而不是您收到的错误消息。带有临时表的存储过程可能是一种更好的方法,但如果没有更多细节很难确定。
  • @KevinK。我做了pip freeze,但我看不到pymssql
  • @SeanLange 这只是学习目的,这就是我使用 tempdb 的原因
  • 那为什么不使用临时表和存储过程呢?我更愿意以更适合现实世界的方式学习做事。

标签: python sql-server tsql pymssql


【解决方案1】:

试试:

pip install pymssql

如果您已经这样做了,但仍然无法正常工作,则可能是它无法识别 python 路径中的pymssql。尝试将模块的目录添加到 PYTHONPATH 中。

Permanently add a directory to PYTHONPATH

希望对你有帮助!

【讨论】:

  • 我确实尝试安装但我没有工作,没有错误消息没有失败消息
  • 如果没有安装此名称的模块,则会出现错误“ModuleNotFoundError”。当您尝试使用 pip 或其他方式安装模块时,它会出现什么?
  • 正如我在上一条评论中所说,没有出现错误消息或成功消息,只需运行并给我一行来编写另一个命令
【解决方案2】:

pymssql 不再维护,因此请改用 pyodbc。这允许通过将元组的元组作为值传递来在一次执行中插入许多值元组。比 executemany 快得多。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-28
    • 1970-01-01
    • 2012-09-27
    • 1970-01-01
    • 2012-05-13
    相关资源
    最近更新 更多