01.
CREATE
PROC UpsertYourTable
02.
@Id
int
,
03.
@Foo
int
,
04.
@Bar
varchar
(10)
05.
AS
06.
MERGE YourTable
WITH
(HOLDLOCK)
AS
T
07.
USING (
VALUES
( @Id, @Foo, @Bar ) )
08.
AS
source ( Id, Foo, Bar)
09.
ON
( T.Id = source.Id )
10.
WHEN
MATCHED
11.
THEN
12.
UPDATE
SET
13.
Foo = source.Foo ,
14.
Bar = source.Bar
15.
WHEN
NOT
MATCHED
16.
THEN
17.
INSERT
(Id, Foo , Bar)
18.
VALUES
19.
(@Id, @Foo , @Bar);