Labels

Apache Hadoop (3) ASP.NET (2) AWS S3 (2) Batch Script (3) BigQuery (21) BlobStorage (1) C# (3) Cloudera (1) Command (2) Data Model (3) Data Science (1) Django (1) Docker (1) ETL (7) Google Cloud (5) GPG (2) Hadoop (2) Hive (3) Luigi (1) MDX (21) Mongo (3) MYSQL (3) Pandas (1) Pentaho Data Integration (5) PentahoAdmin (13) Polybase (1) Postgres (1) PPS 2007 (2) Python (13) R Program (1) Redshift (3) SQL 2016 (2) SQL Error Fix (18) SQL Performance (1) SQL2012 (7) SQOOP (1) SSAS (20) SSH (1) SSIS (42) SSRS (17) T-SQL (75) Talend (3) Vagrant (1) Virtual Machine (2) WinSCP (1)

Monday, June 6, 2011

SQL 2008 Merge Operation

MERGE is a new command introduced in SQL 2008. This is generally used to compare two tables and insert, update and delete rows in a single statement instead of writing separate statement for each process.

MERGE SYNTAX
MERGE FactSales AS TARGET USING Stg_Sales AS SOURCE ON (FactSales.OrderID = Stg_Sales.OrderID)
WHEN MATCHED AND TARGET.SalesAmount <> SOURCE.SalesAmount OR TARGET.ProductID <> SOURCE.ProductID
THEN UPDATE SET TARGET.ProductID = SOURCE.ProductID, Target.SalesAmount = SOURCE.SalesAmount
WHEN NOT MATCHED BY TARGET
THEN
INSERT (ProductID, SalesNo, SalesAmount, SalesOn)
VALUES (SOURCE.ProductID, SOURCE.SalesNo, SOURCE.SalesAmount, SOURCE.SalesOn)
WHEN NOT MATCHED BY SOURCE
DELETE


This Merge statement can be well used in SSIS SCD Type 1 and 2 also in Incremental load.



No comments:

Post a Comment