SQL 在 Sql Server 中获取我更新的行的 Id

SQL 在 Sql Server 中获取我更新的行的 Id

在本文中,我们将介绍如何在 Sql Server 中获取已更新行的 Id。在实际开发中,经常需要对数据库表进行更新操作,并获取到更新后的行的主键值。我们将通过示例来说明如何实现这个功能。

阅读更多:SQL 教程

使用 OUTPUT 关键字获取更新后的行的 Id

Sql Server 中,可以使用 OUTPUT 关键字来获取更新操作的结果。具体使用方法如下:

UPDATE 表名
SET 列名 = 新值
OUTPUT INSERTED.Id
WHERE 条件
SQL

其中,表名是要更新的表名,列名是要更新的列名,新值是要更新成的值,条件是更新数据的条件。

让我们通过一个示例来解释如何使用 OUTPUT 关键字来获取更新后的行的 Id。

假设我们有一个名为 Students 的表,其中包含以下列:IdNameAge。现在我们要更新 Name 为 “Tom” 的学生的 Age 字段,并获取更新后的行的 Id。我们可以使用如下的 SQL 语句:

UPDATE Students
SET Age = 18
OUTPUT INSERTED.Id
WHERE Name = 'Tom'
SQL

运行以上 SQL 语句后,将会更新 Name 为 “Tom” 的学生的 Age 字段为 18,并返回更新后的行的 Id

使用 SCOPE_IDENTITY() 函数获取更新后的行的 Id

除了使用 OUTPUT 关键字外,还可以使用 SCOPE_IDENTITY() 函数来获取更新后的行的 Id。具体使用方法如下:

UPDATE 表名
SET 列名 = 新值
WHERE 条件

SELECT SCOPE_IDENTITY()
SQL

让我们通过一个示例来解释如何使用 SCOPE_IDENTITY() 函数来获取更新后的行的 Id。

假设我们继续以上的示例,我们要更新 Name 为 “Tom” 的学生的 Age 字段,并获取更新后的行的 Id。我们可以使用如下的 SQL 语句:

DECLARE @UpdatedId INT

UPDATE Students
SET Age = 18
WHERE Name = 'Tom'

SELECT @UpdatedId = SCOPE_IDENTITY()

SELECT @UpdatedId
SQL

运行以上 SQL 语句后,将会更新 Name 为 “Tom” 的学生的 Age 字段为 18,并返回更新后的行的 Id

总结

在本文中,我们介绍了两种获取在 Sql Server 中更新后的行的 Id 的方法:使用 OUTPUT 关键字和使用 SCOPE_IDENTITY() 函数。通过使用这些方法,我们可以方便地获取到更新后的行的主键值,以便于后续处理。在实际开发中,根据具体需求选择适合的方法即可。

登录

注册