MERGE in sql
--CREATE TABLE SRC (Id int,Name nvarchar(255), IsActive bit)
--CREATE TABLE TRG (Id int,Name nvarchar(255), IsActive bit)
--INSERT INTO dbo.SRC(Id,Name,IsActive)VALUES(1,'AAA',1)
--INSERT INTO dbo.SRC(Id,Name,IsActive)VALUES(2,'BBB',1)
--INSERT INTO dbo.SRC(Id,Name,IsActive)VALUES(3,'CCC',1)
--INSERT INTO dbo.SRC(Id,Name,IsActive)VALUES(4,'DDD',1)
;
MERGE dbo.TRG t
USING dbo.SRC s
ON t.Id = s.Id
WHEN MATCHED
THEN
UPDATE
SET t.NAME = s.NAME
,t.IsActive = s.IsActive
WHEN NOT MATCHED BY TARGET
THEN
INSERT (
Id
,NAME
,IsActive
)
VALUES (
s.Id
,s.NAME
,s.IsActive
)
WHEN NOT MATCHED BY SOURCE
THEN
DELETE;
SELECT *
FROM SRC
SELECT *
FROM TRG