我在 SQL Server 2008 上使用 MERGE 命令来插入/更新表中的一行。但是目标表和源表是相同的。所以我想验证该行是否存在更新它在同一个表中,或者插入它。但是,我无法使用以下脚本实现插入。
有人能指出发生了什么问题吗?
`MERGE INTO Table1 as t
USING (SELECT * FROM Table1 WHERE ConsumerId = @ConsumerId AND Table1Id = @Table1Id) AS s
ON (t.ConsumerId = s.ConsumerId
AND t.Table1Id = s.Table1Id)
WHEN MATCHED THEN
UPDATE SET
VersionNumber = s.VersionNumber + 1
WHEN NOT MATCHED THEN
INSERT (
ConsumerId,
Table1Id,
VersionNumber
)
VALUES (
@ConsumerId,
@Table1Id,
1
);
Runnig 这说:0 行受影响。