gpt4 book ai didi

sql-server - IDENT_CURRENT 返回最后一个标识值,但 SCOPE_IDENTITY 不返回

转载 作者:行者123 更新时间:2023-12-01 06:57:24 28 4
gpt4 key购买 nike

我有一个 SQL Server 作为 asp.net 应用程序的后端。多个人可能会“同时……”在同一个表中插入数据。

当我从这篇文章中阅读解决方案/答案时:scope_identity vs ident_current

那么我不应该使用 Ident_current因为我可以获得另一个用户的插入 ID。

但是使用 Select Scope_Identity();返回 NULL 而 Select IDENT_CURRENT('tableName')返回我使用 SQL Server Management Studio 检查过的正确 ID。

我在 SqlTransaction 中执行的插入语句. Select IDENT_CURRENT('tableName')在交易之后完成。

我怎么了?

更新 :

我的插入语句由基类动态构建在一起:

INSERT INTO TEST (NAME) VALUES (@Name)

命令的参数集合具有值“xxx”,并且一切都很好地插入到表中。

我不使用纯粹的存储过程 SqlDataReader用 C#。
commandText = "INSERT INTO TEST (NAME) VALUES ('Test1');Select Scopy_Identity();"

如何获得运行上述语句的最后一个汽车公司 ID,我应该调用 ExecuteNonQueryExecuteReader对于上述,因为它有一个 INSERTSELECT这令人困惑...

最佳答案

IDENT_CURRENT返回为任何 session 和任何范围内的特定表生成的最后一个标识值。
@@IDENTITY返回为当前 session 中的任何表生成的最后一个标识值,跨越所有范围。
SCOPE_IDENTITY返回为当前 session 和当前作用域中的任何表生成的最后一个标识值。

关于sql-server - IDENT_CURRENT 返回最后一个标识值,但 SCOPE_IDENTITY 不返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9384768/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com