0

仕事で頻繁に更新を実行していますが、merge コマンドの使用を開始したいと考えています。とはいえ、私はまだあまりなじみがありません。

どのように翻訳しますか、または少なくとも MERGE を使用した次の更新ステートメントのアイデアを教えてください。

BEGIN TRANSACTION T1

SELECT @@TRANCOUNT;

WITH RADHE2
     AS (SELECT ROW_NUMBER () OVER( PARTITION BY Assigned_To, Assigned_To_Descriptor /*,..*/
                                     /* Irrelevant columns removed for brevity*/
                                        ORDER BY Rn_Create_Date DESC, Assigned_To DESC ) AS ID,
                *
         FROM   PivCRM_Prod_Online_ED.dbo.Rn_Appointments
         WHERE  AN_ACTIVE = 1
                AND rn_edit_date > '12 nov 2013'
                AND ASSIGNED_TO = 0x000000000000074F
                AND notes LIKE 'TAM_Indigo Base_Oct 2013')
--======================================================
--SETTING Appt_Date TO TOMORROW
UPDATE PivCRM_Prod_Online_ED.dbo.Rn_Appointments
SET    Appt_Date = '14 NOV 2013'
FROM   PivCRM_Prod_Online_ED.dbo.Rn_Appointments R
       INNER JOIN RADHE2 R1
         ON R.RN_APPOINTMENTS_ID = R1.Rn_APPOINTMENTS_ID
WHERE  R1.ID = 1
--COMMIT TRANSACTION T1
4

2 に答える 2

3

MERGE は、テーブル内のデータの存在に応じて、INSERT または UPDATE を選択するのに役立ちます。UPDATE のみを実行する場合は、UPDATE を実行し続けることができます。

于 2013-11-13T13:10:29.823 に答える
1

Merge は "Upsert" の別名です。別名、同じ「呼び出し」でロジックを更新および挿入します。

http://en.wikipedia.org/wiki/Upsert

別名の単語 (アップサート) を使用すると、適切なジョブに適切なツールを選択する際に役立ちます。

于 2013-11-13T13:19:00.693 に答える