在Python中使用pyodbcpymssql等库连接SQL Server时,你可以通过executemany()方法来批量执行更新(UPDATE)操作。这种方式可以显著提高性能,特别是在需要更新大量记录的情况下。

下面是一个示例代码,展示如何使用pyodbc来批量执行更新操作:

  1. 安装必要的库
pip install pyodbc
  • 1.
  1. 编写Python脚本
import pyodbc

# 连接字符串
conn_str = (
    r'DRIVER={ODBC Driver 17 for SQL Server};'
    r'SERVER=your_server_name;'
    r'DATABASE=your_database_name;'
    r'UID=your_username;'
    r'PWD=your_password;'
)

# 批量更新的数据
data_to_update = [
    (5, 'new_value_1', 1),
    (10, 'new_value_2', 2),
    (15, 'new_value_3', 3),
]

# 更新语句
update_query = """
UPDATE your_table
SET column1 = ?, column2 = ?
WHERE id = ?
"""

try:
    # 创建连接
    conn = pyodbc.connect(conn_str)

    # 创建游标
    cursor = conn.cursor()

    # 使用executemany执行批量更新
    cursor.executemany(update_query, data_to_update)

    # 提交事务
    conn.commit()

    print("批量更新成功")

except pyodbc.Error as ex:
    sqlstate = ex.args[0]
    print(sqlstate)
    print(ex)

finally:
    # 关闭连接
    if conn:
        conn.close()
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.

在这个例子中,请将your_server_name, your_database_name, your_username, your_password, your_table, column1, column2id替换为你的实际值。

如果你使用的是pymssql,那么基本的流程是相同的,只是库的导入和连接方式会有所不同。例如,连接字符串不需要使用ODBC驱动程序,而是直接指定服务器、数据库、用户名和密码。