讓說我有2個表插入/更新,合併與遞歸
DECLARE @BaseProducts TABLE (Id int)
DECLARE @ConnectData TABLE (Id int, ACTION varchar(10))
我在@ConnectData一些數據,
INSERT INTO @ConnectData (Id, ACTION)
VALUES (1, 'Insert')
INSERT INTO @ConnectData (Id, ACTION)
VALUES (1, 'Insert')
INSERT INTO @ConnectData (Id, ACTION)
VALUES (1, 'Insert')
現在我想從@ConnectData更新@BaseProduct,所以我試了
MERGE @BaseProducts AS D
USING (SELECT Id, ACTION FROM @ConnectData) S
ON D.Id = S.Id
WHEN NOT MATCHED THEN
INSERT(Id)
VALUES(S.Id)
WHEN MATCHED THEN
UPDATE
SET Id = S.Id;
但是這是插入3行。我想第一個應該插入和其他2應該更新。