如何使用pyodbc将数据插入到SQL Server的唯一标识符列中

问题描述

我有一个表,其中有一列类型为 uniqueidentifier。如何使用 pyodbc 将数据插入到 uid 列中?

我正在尝试此代码

 cursor.execute("""
                   Insert into tablename (col1,col2)
                   values (?,?)
                """,'67E616B4-7DBC-6D14-B0BA-0F7DE2F94AEE','2E92D02D-B7DA-4DED-9816-26B2CF867FA2' )

col1col2 属于 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 选项代表向表中插入新值