sql - SCOPE_IDENTITY 在这种情况下会起作用吗?

标签 sql sql-server ado.net scope-identity

我有 PK,它是自增 key 。我需要将记录插入数据库,然后取回 PK 并在另一个插入中使用它。

但是我想在一笔交易中完成此操作。那可能吗。这个想法是,如果我必须做的任何更新/插入中出现问题,那么我可以回滚所有内容,但我的印象是我需要进行提交。

我一开始打算在 ado.net 中执行此操作,但后来切换到存储过程,因为我认为这可能会解决这个问题。

在这种情况下,SP 会帮助我吗?

最佳答案

是的,scope_identity 将为您提供最新插入的 ID。作为替代方案,如果您使用的是 sql server 2005+,则可以使用 output clause .

INSERT INTO [MyTable]([MyCol])
OUTPUT INSERTED.ID
SELECT [MyCol] FROM [MySourceTable];

关于sql - SCOPE_IDENTITY 在这种情况下会起作用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12827496/

相关文章:

mysql - 具有多个表的时间戳按天分组

sql-server - 传递存储过程的输出参数时执行 SQL 任务时出现错误 "The batch could not be analyzed because of compile errors in ssis"

sql - 如何在 SQL 中创建带有 2 个参数的函数?

sql - 报表中的每一列都由单独的独立查询派生

asp.net - Azure SqlException : Database on server is not currently available

c# - 需要有关泛型、接口(interface)和基类的帮助

php - 需要简单 sql 的帮助来添加记录

sql - sql server中单列中的不同日期格式

MySQL 查询选择过去 7 天的每一天的最后一条记录

c# - 如何使用 ADO.NET GetSchema() 只获取用户定义的存储过程?