在 C# 中 SQL INSERT 后检索自动生成的 ID
通过C#向SQL Server表添加数据时,获取新条目自动生成的ID是一个常见的需求。 本教程演示了两种方法:使用 OUTPUT
子句(SQL Server 2005 及更高版本)和 SCOPE_IDENTITY()
函数(旧版本)。
方法 1:OUTPUT
子句(SQL Server 2005 及更高版本)
OUTPUT
子句提供了一种直接的方法来指定包含ID的列:
<code class="language-csharp">using (SqlCommand cmd = new SqlCommand("INSERT INTO Mem_Basic(Mem_Na,Mem_Occ) OUTPUT INSERTED.ID VALUES(@na,@occ)", con))</code>
这里,INSERTED.ID
子句中的OUTPUT
返回新插入行的ID。
方法 2:SCOPE_IDENTITY()
函数(较旧的 SQL Server 版本)
对于较旧的 SQL Server 版本,SCOPE_IDENTITY()
检索当前范围内最近插入的行的 ID:
<code class="language-csharp">using (SqlCommand cmd = new SqlCommand("INSERT INTO Mem_Basic(Mem_Na,Mem_Occ) VALUES(@na,@occ); SELECT SCOPE_IDENTITY();", con))</code>
此查询插入数据,然后在单独的 SCOPE_IDENTITY()
语句中使用 SELECT
来获取 ID。
获取 ID
在这两种方法中,都使用 ExecuteScalar()
和类型转换来访问生成的 ID:
<code class="language-csharp">int newId = (int)cmd.ExecuteScalar();</code>
此技术可确保有效检索新插入的记录 ID,提供跨不同 SQL Server 版本的兼容性。
以上是如何在 C# 中的 SQL INSERT 命令后检索插入的 ID?的详细内容。更多信息请关注PHP中文网其他相关文章!