この質問について NLwino に感謝します: Using output to set a variable in merge statement
MERGE 内から新しい counter_ の値を返すことを探しています。
DECLARE @CounterType VARCHAR(50)
SET @CounterType = 'Case';
MERGE [dbo].[AN_Counter] WITH(ROWLOCK) TARGET
USING(SELECT @CounterType) SOURCE([KEY])
ON TARGET.[System_Name] = SOURCE.[KEY]
WHEN MATCHED THEN
UPDATE
SET COUNTER_ = COALESCE(COUNTER_,0) + 1
SELECT @CounterType = COALESCE(Prefix,'') + CAST(SUBSTRING('0000000000000000000000000000',1,padding - LEN(CAST (Counter_ AS VARCHAR ))) + CAST (Counter_ AS VARCHAR ) AS VARCHAR)
;
上記のように、マージを実行し、新しい値を @CounterType 変数に入れたいと思います。
どんな助けでも大歓迎です。M