下面的示例使用 MERGE 以更新或插入行的方式來修改 SalesReason 表。 當源表中的 NewName 值與目標表 ( SalesReason ) 的 Name 列中的值匹配時,就會更新此目標表中的 ReasonType 列。 當 NewName 的值不匹配時,就會將源行插入到目標表中。 此源表是一個派
下面的示例使用 MERGE 以更新或插入行的方式來修改 SalesReason 表。 當源表中的 NewName 值與目標表 (SalesReason) 的 Name 列中的值匹配時,就會更新此目標表中的 ReasonType 列。 當 NewName 的值不匹配時,就會將源行插入到目標表中。 此源表是一個派生表,它使用 Transact-SQL 表值構造函數指定源表的多個行。 有關在派生表中使用表值構造函數的詳細信息,請參閱表值構造函數 (Transact-SQL)。 該示例還說明了如何在表變量中存儲 OUTPUT 子句的結果,并且說明存儲結果之后如何通過執行返回已插入和更新的行的計數的簡單選擇操作來匯總 MERGE 語句的結果。 <無> $velocityCount-->USE AdventureWorks2012; GO -- Create a temporary table variable to hold the output actions. DECLARE @SummaryOfChanges TABLE(Change VARCHAR(20)); MERGE INTO Sales.SalesReason AS Target USING (VALUES ('Recommendation','Other'), ('Review', 'Marketing'), ('Internet', 'Promotion')) AS Source (NewName, NewReasonType) ON Target.Name = Source.NewName WHEN MATCHED THEN UPDATE SET ReasonType = Source.NewReasonType WHEN NOT MATCHED BY TARGET THEN INSERT (Name, ReasonType) VALUES (NewName, NewReasonType) OUTPUT $action INTO @SummaryOfChanges; -- Query the results of the table variable. SELECT Change, COUNT(1) AS CountPerChange FROM @SummaryOfChanges GROUP BY Change;
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com