使用 OUTPUT 子句访问新生成的身份值
将数据插入包含标识列的表中通常需要检索新生成的 ID。 OUTPUT
子句提供了一种有效的方法来实现此目的,消除了额外查询的需要。
方法 1:输出到表变量
此方法将标识值定向到声明的表变量。
<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');</code>
@OutputTbl
变量现在保存生成的 ID。
方法 2:输出到非表变量
某些数据库系统(如 SQL Server)支持直接输出到非表变量。 请注意,这并未得到普遍支持; 例如,PostgreSQL 使用 RETURNING
代替。
SQL Server 示例:
<code class="language-sql">DECLARE @ID INT; INSERT INTO MyTable (Name, Address, PhoneNo) OUTPUT INSERTED.ID INTO @ID VALUES ('Yatrix', '1234 Address Stuff', '1112223333');</code>
ID 存储在 @ID
中。
PostgreSQL 示例:
<code class="language-sql">INSERT INTO MyTable (Name, Address, PhoneNo) RETURNING Id INTO @ID VALUES ('Yatrix', '1234 Address Stuff', '1112223333');</code>
这里,@ID
接收返回的ID。 RETURNING
子句的功能与其他系统中的 OUTPUT
类似。 根据您的具体数据库系统选择合适的方法。
以上是如何使用 OUTPUT 子句在 INSERT 后检索标识值?的详细内容。更多信息请关注PHP中文网其他相关文章!