【Sql Server】ストアドでUpsert
MERGE INTOですね。メモです。
MERGE INTOが使えるのはSQL Server 2008以降だった気がします。
ALTER PROCEDURE [dbo].[Upsert] @Id int, @Data int, AS BEGIN BEGIN TRANSACTION; SET NOCOUNT ON; MERGE INTO HogeTable AS A USING (SELECT @Id AS Id,@Data AS Data) AS B ON (A.Id = B.Id) WHEN MATCHED THEN UPDATE SET Data = B.Data WHEN NOT MATCHED THEN INSERT (Id,Data) VALUES(B.Id,B.Data); COMMIT TRANSACTION; END