假设我有一个表:
FieldWorker{ ID, Name, WorkingArea}
而且,ID
是一个自动递增的字段。
现在,假设我使用以下代码插入记录:
sqlComm.ExecuteNonQuery("INSERT INTO [FieldWorker]
([Name]
,[WorkingArea])
VALUES
(@Name
,@WorkingArea)");
我可以使用哪种技术来检索插入最新记录时生成的自动递增ID
字段的最大值?
插入代码和ID
- 值的检索都必须在单个SqlTransaction
对象下完成。
为什么我必须使用ExecuteScalar()
?
答案 0 :(得分:0)
对于SQL Server 2000,您需要使用SCOPE_IDENTITY和ExecuteScalar
执行此操作sqlComm.ExecuteScalar("INSERT INTO [FieldWorker]
([ID]
,[Name]
,[WorkingArea])
VALUES
(@ID
,@Name
,@WorkingArea);
SELECT SCOPE_IDENTITY()");
对于SQL Server 2005+,您使用OUTPUT子句
sqlComm.ExecuteScalar("INSERT INTO [FieldWorker]
([ID]
,[Name]
,[WorkingArea])
OUTPUT INSERTED.ID
VALUES
(@ID
,@Name
,@WorkingArea);");
答案 1 :(得分:0)
答案 2 :(得分:0)
如果ID字段是自动增量的,则不需要在插入中包含。
此外,您可以使用Scope_Identity()。
有关详细信息,请访问此博客