我有一个 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”,并且所有内容都可以很好地插入表中。
我不使用纯SqlDataReaderC# 的存储过程。
commandText = "INSERT INTO TEST (NAME) VALUES ('Test1');Select Scopy_Identity();"
我怎样才能获得运行上述语句的最后一个自动 inc id,我应该调用ExecuteNonQuery或调用上述语句ExecuteReader,因为它有一个INSERT,SELECT这令人困惑......