2013-11-13 3 views
0

Я часто запускаю обновления на работе, однако, я хотел бы начать использовать команду merge. Я все еще не так хорошо знаком с этим.using 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 
+0

Если это не сломано, зачем это исправлять? – gvee

+1

Какова мотивация желания использовать MERGE? –

+1

Насколько я знаю, нет очевидного всегда применимого преимущества использования слияния. Это сложнее в использовании, чем обычное обновление и не имеет преимуществ в производительности (?). Поэтому вам следует переключиться на него только тогда, когда вы хотите создать одну логическую операцию для вставки/обновления/удаления, объединив различия между наборами - следовательно, MERGE - или нишевые случаи, такие как необходимость значений OUTPUT из объединенных таблиц во время операции INSERT. – Kahn

ответ

3

MERGE полезен для выбора между INSERT или UPDATE в зависимости от наличия данных в таблице. Если вы делаете только ОБНОВЛЕНИЕ, вы можете продолжать делать ОБНОВЛЕНИЕ.

1

Merge является aka для "Upsert". Aka, Обновить и Вставить логику в том же «вызове».

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

Если вы используете ака слово (upsert то есть), это поможет Вам при выборе правильного инструмента для правильной работы.

Смежные вопросы