使用 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中文網其他相關文章!