我是T-SQL命令MERGE
的新手,所以我在SQL逻辑中找到了一个可以使用它的地方,想要测试它,但无法弄清楚我应该如何使用它:< / p>
IF (EXISTS (SELECT 1 FROM commissions_history WHERE request = @requestID))
UPDATE commissions_history
SET amount = @amount
WHERE request = @requestID
ELSE
INSERT INTO commissions_history (amount) VALUES @amount)
请建议正确使用。谢谢!
答案 0 :(得分:13)
你看过帮忙了吗?这是一个简单的例子:
MERGE dbo.commissions_history AS target
USING (SELECT @amount, @requestID) AS source (amount, request)
ON (target.request = source.request)
WHEN MATCHED THEN
UPDATE SET amount = source.amount
WHEN NOT MATCHED THEN
INSERT (request, amount)
VALUES (source.request, source.amount);
答案 1 :(得分:1)
我希望它会起作用
MERGE commissions_history AS target
USING (SELECT request FROM commissions_history WHERE request = @requestID) AS source (request)
ON (target.request = source.request)
WHEN MATCHED THEN
UPDATE SET amount = @amount
WHEN NOT MATCHED BY SOURCE
INSERT (request, amount)
VALUES (@requestID, @amount)