从自动递增 id 字段中检索最新值?
假设我有一个表:
FieldWorker{ ID, Name, WorkingArea}
并且, ID
是一个自动递增字段。
现在,假设我使用以下代码来插入记录:
sqlComm.ExecuteNonQuery("INSERT INTO [FieldWorker]
([Name]
,[WorkingArea])
VALUES
(@Name
,@WorkingArea)");
我可以使用什么技术来检索插入最新记录时生成的自动递增 ID
字段的最大值?
插入代码和 ID
值的检索都必须在单个 SqlTransaction
对象下完成。
为什么必须使用 ExecuteScalar()?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
对于 SQL Server 2000,您需要使用 来执行此操作SCOPE_IDENTITY 和 ExecuteScalar
对于 SQL Server 2005+,您可以使用 OUTPUT 子句
For SQL Server 2000, you'd need to do this with SCOPE_IDENTITY and ExecuteScalar
For SQL Server 2005+, you use the OUTPUT clause
1)可以将ID设置为Identity(自动递增)
2)您可以获取插入的最后一个身份号码,如下
参考SQL 标识号
1) You can set ID as Identity (auto increment)
2) You can get the last Identity number inserted as follow
Reference SQL Identity Number
如果 ID 字段是自动递增的,则无需将其包含在插入内容中。
此外,您可以使用 Scope_Identity()。
有关详细信息,您可以访问此博客
http://blog.sqlauthority.com/2007/03/25/sql-server-identity-vs-scope_identity-vs-ident_current-retrieve-last-inserted-identity-of-record/
If the ID field is autoincremented you don't need to include in your insert.
Further you can use Scope_Identity().
For more information you can visit this blog
http://blog.sqlauthority.com/2007/03/25/sql-server-identity-vs-scope_identity-vs-ident_current-retrieve-last-inserted-identity-of-record/