【发布时间】: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