首页 > 解决方案 > 将 Python 中的值插入 SQL Server

问题描述

我想从 Python 将值插入到 SQL Server 表中。

这是我在 SQL Server 中的表:

CREATE TABLE DB.type.[Ref] 
(
    [Type_Ref] varchar(65),
    [ID_match] varchar(65),
    [Data] varchar(65)

    PRIMARY KEY ([Type_Ref], [ID_match])
)

要从 python 插入值,我编写了以下代码:

conn = pyodbc.connect('Driver={ODBC Driver 17 for SQL Server};'
                              'Server=????;'
                              'Database=DB;'
                              'Trusted_Connection=yes;')


cursor = conn.cursor()

sql = "INSERT INTO DB.Ref (Type_Ref, ID_match, Data) VALUES (?, ?, ?)"
cursor.execute(sql, (DATA[Type_Ref], DATA[ID_match], DATA[Data]))

conn.commit()
cursor.close()
conn.close()

但是,当我运行 Python 时,我在 SQL Server 中看不到任何数据行......

在我运行上面的 python 代码之后,我注意到我的 IDE 给出了这个:

进程以退出代码 -1073741819 (0xC0000005) 结束

解决方案:我通过删除sql-server中的表并创建一个新表解决了这个问题。

标签: pythonsql-server

解决方案


我认为你没有正确构建你的 conn 对象。当我尝试匹配您的模式时,我收到一个 TypeError。试试这个:

server='server'
database='database'
user='username'
password='secret'

conn = pyodbc.connect(
    server=server,
    database=database,
    user=username,
    password=password,
    port=1433,
    driver='ODBC Driver 17 for SQL Server'
)

您的其余代码看起来应该可以正常工作。


推荐阅读