
Python
使用 Python 和 pyodbc 连接到 SQL Server 数据库是一种常见的方式。当我们在执行插入操作时,通常需要获取插入行的 ID 值,以便进一步的操作或者验证。本文将介绍如何使用 pyodbc 在 SQL Server 上执行插入并取回行 ID 的方法,并提供一个案例代码进行演示。
连接到 SQL Server 数据库首先,我们需要安装 pyodbc 模块,并确保已经正确配置了 SQL Server 的驱动程序。然后,我们可以使用以下代码连接到 SQL Server 数据库:Pythonimport pyodbc# 连接到 SQL Server 数据库conn_str = 'DRIVER={SQL Server Native Client 11.0};SERVER=服务器地址;Database=数据库名称;UID=用户名;PWD=密码'conn = pyodbc.connect(conn_str)请注意,上述代码中的连接字符串需要根据实际情况进行修改,包括服务器地址、数据库名称、用户名和密码。确保提供了正确的凭据和连接信息。执行插入操作并取回行 ID有两种常见的方法可以在 SQL Server 上执行插入操作并取回行 ID。首先,我们可以使用 SCOPE_IDENTITY() 函数,在插入操作之后立即执行查询以获取行 ID。其次,我们还可以使用 OUTPUT 子句将插入的行 ID 直接返回。使用 SCOPE_IDENTITY() 函数以下是使用 SCOPE_IDENTITY() 函数执行插入操作并获取行 ID 的示例代码:Python# 创建游标对象cursor = conn.cursor()# 执行插入操作cursor.execute("INSERT INTO 表名 (列1, 列2) VALUES (?, ?)", ('值1', '值2'))# 获取插入行的 IDcursor.execute("SELECT SCOPE_IDENTITY() AS id")row = cursor.fetchone()inserted_id = row.id# 提交事务conn.commit()# 关闭连接conn.close()# 打印插入行的 IDprint("插入的行 ID 为:", inserted_id)在上述代码中,我们首先创建了一个游标对象,然后执行插入操作。接着,我们执行了一个查询语句,使用 SCOPE_IDENTITY() 函数获取刚刚插入行的 ID 值,并将其保存到 inserted_id 变量中。最后,我们提交了事务并关闭了数据库连接。使用 OUTPUT 子句以下是使用 OUTPUT 子句执行插入操作并获取行 ID 的示例代码:Python# 创建游标对象cursor = conn.cursor()# 执行插入操作并获取行 IDcursor.execute("INSERT INTO 表名 (列1, 列2) OUTPUT INSERTED.id VALUES (?, ?)", ('值1', '值2'))# 提交事务conn.commit()# 获取插入行的 IDrow = cursor.fetchone()inserted_id = row.id# 关闭连接conn.close()# 打印插入行的 IDprint("插入的行 ID 为:", inserted_id)在上述代码中,我们执行了一个带有 OUTPUT 子句的插入操作,将插入的行 ID 直接返回。然后,我们使用 fetchone() 方法获取返回的行,并将其 ID 值保存到 inserted_id 变量中。最后,我们提交了事务并关闭了数据库连接。使用 pyodbc 在 SQL Server 上执行插入操作并取回行 ID 是一种常见的需求。本文介绍了使用 SCOPE_IDENTITY() 函数和 OUTPUT 子句两种方法来实现这一目标,并提供了相应的示例代码进行演示。通过这些方法,我们可以轻松地在插入操作后获取新行的 ID 值,以便进行后续操作或验证。Copyright © 2025 IZhiDa.com All Rights Reserved.
知答 版权所有 粤ICP备2023042255号