使用 SQL Server 的 OUTPUT 子句檢索新產生的識別值
將資料插入 SQL Server 資料庫時,通常需要為插入的行新產生的識別值。 OUTPUT
子句提供了一種乾淨而有效的方法來完成此任務。 本文探討了兩種主要方法。
方法一:輸出到控制台或使用ExecuteScalar()
為了在非 T-SQL 上下文(如 .NET 應用程式)中快速偵錯或檢索識別值,OUTPUT
子句可以將值直接傳送到 SSMS 控制台或使用 ExecuteScalar()
擷取。
<code class="language-sql">INSERT INTO MyTable(Name, Address, PhoneNo) OUTPUT INSERTED.ID VALUES ('Yatrix', '1234 Address Stuff', '1112223333')</code>
在 .NET 中:
<code class="language-csharp">int newId = command.ExecuteScalar();</code>
方法二:輸出到表格變數或臨時表
對於需要 T-SQL 預存程序或批次中的識別值的場景,表變數或臨時表提供了強大的解決方案。 OUTPUT
子句將插入的識別值定向到該表中,從而能夠在 T-SQL 環境中進行進一步處理。
<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 use the ID from @OutputTbl SELECT ID FROM @OutputTbl;</code>
這些技術使開發人員能夠無縫地從 INSERT
語句中檢索產生的識別值,從而促進偵錯、將值返回到應用程式並啟用複雜的 T-SQL 工作流程。
以上是如何使用 SQL Server 的 OUTPUT 子句在 INSERT 語句後檢索識別值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!