Is this a good candidate for a MERGE command?
Must the source data also be another table or can it be variables that are passed?
If it must be a table, is inserting the passed variables into a temp table sane?
Could you help me with the syntax?
CREATE PROCEDURE [dbo].[usp_ConvertToMerge]
@GL_DT date
,@SRC_SYS_ID varchar(60)
,@MLR_SRC_SYS_CD char(3)
,@TRSRY_FEED_DT date
,@Data varchar(20)
AS
BEGIN
IF NOT EXISTS (SELECT
@GL_DT
FROM
MLR_REBATE_IBOR_INFO_2
WHERE
[GL_DT] = @GL_DT
AND [SRC_SYS_ID] = @SRC_SYS_ID
AND [MLR_SRC_SYS_CD] = @MLR_SRC_SYS_CD
AND [TRSRY_FEED_DT] = @TRSRY_FEED_DT)
BEGIN
INSERT INTO [dbo].[MLR_REBATE_IBOR_INFO_2]
([GL_DT],
[SRC_SYS_ID],
[MLR_SRC_SYS_CD],
[TRSRY_FEED_DT],
[Data])
SELECT
@GL_DT
,@SRC_SYS_ID
,@MLR_SRC_SYS_CD
,@TRSRY_FEED_DT
,@Data
END
ELSE
BEGIN
UPDATE [dbo].[MLR_REBATE_IBOR_INFO_2]
SET [Data] = @Data
WHERE [GL_DT] = @GL_DT
AND [SRC_SYS_ID] = @SRC_SYS_ID
AND [MLR_SRC_SYS_CD] = @MLR_SRC_SYS_CD
AND [TRSRY_FEED_DT] = @TRSRY_FEED_DT
END
END
GO
I think I did it: