MERGE

Składnia: 

MERGE INTO [catalog-name.]table-name [AS alias] USING source [AS alias]
ON matching-expression 
merge-when-clause [merge-when-clause]*

source:
	[catalog-name.]table-name |
	view-name |
	select-statement

merge-when-clause:
	WHEN MATCHED [AND expression] THEN DELETE |
	WHEN MATCHED [AND expression] THEN UPDATE SET column = expression, [column = expression]* |
	WHEN NOT MATCHED [AND expression] THEN INSERT [(column[, column]*)] VALUES (expression[, expression]*)
	

Za pomocą instrukcji MERGE można do tabeli docelowej table-name wstawić nowe wiersze lub uaktualnić już istniejące wiersze, w zależności od określonych warunków

Wiersze, które mają być przetworzone pod kątem uaktualnienia zawartości tabeli docelowej to wiersze zwrócone przez element source, które spełniają warunek określony w matching-expression.

Klauzula WHEN MATCHED określa operację, która będzie wykonana, jeżeli dany wiersz zwrócony przez source jest też obecny w uaktualnianej tabeli. Można też określić dodatkowy warunek AND expression: wówczas operacja zostanie wykonana tylko wtedy, gdy ten warunek też będzie spełnionny. Możliwe operacje to:

Klauzula WHEN NOT MATCHED określa operację, która będzie wykonana, gdy wiersza zwróconego przez source nie ma w uaktualnianej tabeli. Jedyna możliwa operacja to INSERT - wartości w polach dla nowego wiersza zostaną określone na podstawie klauzul column = expression.