Skip to content

Instantly share code, notes, and snippets.

@chrispickford
Created July 25, 2016 16:23
Show Gist options
  • Save chrispickford/31ed337ad4b034060c03d76a96ce42c4 to your computer and use it in GitHub Desktop.
Save chrispickford/31ed337ad4b034060c03d76a96ce42c4 to your computer and use it in GitHub Desktop.
CREATE TABLE #t (
Id INT,
v1 INT,
v2 INT,
v3 INT
);
INSERT INTO #t
(Id, v1, v2, v3)
VALUES
(1,1,1,1),
(2,2,2,2),
(3,3,3,3),
(4,4,4,4);
SELECT * FROM #t;
MERGE INTO #t AS TGT
USING ( VALUES
(1,1,2,1),
(5,5,5,5) ) AS SRC (Id, v1, v2, v3)
ON TGT.Id = SRC.Id
WHEN MATCHED THEN
UPDATE SET TGT.v1 = SRC.v1,
TGT.v2 = SRC.v2,
TGT.v3 = SRC.v3
WHEN NOT MATCHED BY TARGET THEN
INSERT (Id, v1, v2, v3)
VALUES (SRC.Id,
SRC.v1,
SRC.v2,
SRC.v3);
SELECT * FROM #t;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment