问题描述
我有一个表,其中有一列类型为 uniqueidentifier
。如何使用 pyodbc 将数据插入到 uid 列中?
我正在尝试此代码:
cursor.execute("""
Insert into tablename (col1,col2)
values (?,?)
""",'67E616B4-7DBC-6D14-B0BA-0F7DE2F94AEE','2E92D02D-B7DA-4DED-9816-26B2CF867FA2' )
col1
和 col2
属于 uniqueidentifier
类型。
我收到此错误:
pyodbc.ProgrammingError: ('42000','[42000] [Microsoft][ODBC Driver 17 for sql Server][sql Server]从字符串转换为唯一标识符时转换失败。(8169) (sqlExecDirectW)')
解决方法
您可以使用 fast_to_sql
,这是一种将 Pandas 数据帧上传到 Microsoft SQL Server 的改进方法,例如
df = pd.DataFrame({
"col1": ['67E616B4-7DBC-6D14-B0BA-0F7DE2F94AEE'],"col2": ['2E92D02D-B7DA-4DED-9816-26B2CF867FA2']
})
fts.fast_to_sql(df,"tablename",conn,if_exists="append",custom=None,temp=False)
其中 append 选项代表向表中插入新值