我有一个SQL Server作为asp.net应用程序的后端。多人可能会在同一个表中同时插入数据...'。IDENT_CURRENT返回最后的标识值,但SCOPE_IDENTITY不
当我读这篇文章的解决方案/回答: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')
。
我该怎么做?
UPDATE:
我的INSERT语句这是动态生成一个基类共建:
INSERT INTO TEST (NAME) VALUES (@Name)
命令的参数集合已值“XXX”,终于雨过天青插入到表。
我不使用存储过程只是纯粹的SqlDataReader
与C#。
commandText = "INSERT INTO TEST (NAME) VALUES ('Test1');Select Scopy_Identity();"
我怎样才能运行上面的语句中的最后自动INC ID和我应该叫ExecuteNonQuery
或ExecuteReader
对于上述,因为它有一个INSERT
和SELECT
这混乱...
向我们展示您的插入命令。在上周的类似问题上看看我的答案,也许它是有帮助的:http://stackoverflow.com/questions/9319532/return-value-from-sql-server-insert-command-using-c-sharp/9319609 #9319609您必须在相同范围内使用scope_identity。 – 2012-02-21 20:47:28
你可能完全独立地执行了这两个命令。 – 2012-02-21 20:48:10
我独立执行它们。 – Pascal 2012-02-21 20:48:58