Reguły programisty

Transact-SQL

Operacja MERGE w SQL Server

Użycie polecenia MERGE do modyfikacji danych w SQL Server

Transact-SQLjob interviewSQL Server70-761

Pojedyncze polecenie MERGE służy do jednoczesnej modyfikacji danych w tabeli docelowej (operacji insert, update i delete).

Wczasie operacji MERGE uwzględniane są następujące reguły:

- jeśli dane w tabeli źródłowej są identyczne jak w tabeli docelowej - dane są uaktualniane,

- jeśli dane w tabeli źródłowej nie mają dopasowania w tabeli docelowej - dane są wstawiane do tabeli docelowej,

- jeśli dane w tabeli docelowej nie mają dopasowania w tabeli źródełowej - dane w tabeli docelowej są usuwane.

Rozpatrzmy następujące dwie tabele:

OldProduct

Name Price
SQL Server 2008 100
SQL Server 2012 200
SQL Server 2014 300

NewProduct

Name Price
SQL Server 2005 50
SQL Server 2012 200
SQL Server 2014 300
SQL Server 2016 300

Jeśli chcemy zostawić wszystkie pasujące wiersze, wstawić do tabeli NewProduct wiersze w niej niewystępujące oraz usunąć z tabeli NewProduct wiersze nieobecne w tabeli OldProduct, polecenie wygląda następująco:

Po tej operacji docelowa tabela NewProduct posiada nastęujące dane:

Name Price
SQL Server 2008 100
SQL Server 2012 200
SQL Server 2014 300
Tutorial statistics