在 SQL INSERT 语句后检索新生成的标识值
通常,在将数据插入具有自动递增标识列的 SQL 表后,您需要访问新生成的 ID。 OUTPUT
子句提供了一种实现此目的的便捷方法。
本指南说明了使用 OUTPUT
子句检索身份值的两种常见方法:
方法一:输出到控制台(然后输出到您的应用程序)
最简单的方法将身份值直接输出到控制台。 这在处理单个插入并检索应用程序代码中的 ID 时非常有用:
<code class="language-sql">INSERT INTO MyTable (Name, Address, PhoneNo) OUTPUT INSERTED.ID VALUES ('Yatrix', '1234 Address Stuff', '1112223333');</code>
您的应用程序代码(例如,使用 ADO.NET 的 ExecuteScalar()
)可以捕获此单个输出值。
方法 2:输出到表变量(用于多次插入或进一步处理)
对于多次插入或需要在 T-SQL 代码中处理生成的 ID 时,请使用表变量作为 OUTPUT
子句的目标:
<code class="language-sql">DECLARE @OutputTbl TABLE (ID INT); INSERT INTO MyTable (Name, Address, PhoneNo) OUTPUT INSERTED.ID INTO @OutputTbl (ID) VALUES ('Yatrix', '1234 Address Stuff', '1112223333'); -- Now you can access the ID(s) from @OutputTbl SELECT ID FROM @OutputTbl;</code>
此方法允许您直接在存储过程或 T-SQL 脚本中使用多个插入的 ID。 您还可以使用临时表(#temp
)甚至永久表作为输出目标。
以上是如何在 SQL 中检索 INSERT 语句后的 Identity 值?的详细内容。更多信息请关注PHP中文网其他相关文章!