By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
IF OBJECT_ID(N'T')IS NOT NULL DROP TABLE Tl;
CREATE TABLE T(ID INT NOT NULL, V INT NULL);
INSERT T(ID,V)VALUES(1,1),(2,NULL),(3,-100),(4,0);
SELECT * FROM T;
DECLARE @ID INT=3, @V INT=55;
MERGE T USING(VALUES(@ID,@V))S(ID,V) ON T.ID=S.ID
WHEN MATCHED THEN UPDATE SET V=S.V
WHEN NOT MATCHED THEN INSERT(ID,V)VALUES(S.ID,S.V);
SELECT * FROM T;
ID | V |
---|---|
1 | 1 |
2 | null |
3 | -100 |
4 | 0 |
ID | V |
---|---|
1 | 1 |
2 | null |
3 | 55 |
4 | 0 |