M. *_*hmy 6 sql t-sql sql-server
假设我进行了与类似条件匹配的合并
MERGE TargetTable WITH(HOLDLOCK) AS target
USING SourceTable AS source
ON (target.ID = source.ID)
WHEN MATCHED AND (source.BitCondition = 0) THEN
UPDATE TargetTable
WHEN NOT MATCHED -- what is not matched??
INSERT INTO TargetTable
Run Code Online (Sandbox Code Playgroud)
不匹配的记录是不在两个表中还是类似
NOT(MATCHED AND (source.BitCondition = 0))
Run Code Online (Sandbox Code Playgroud)
注意我故意想忽略它匹配且 BitCondition = 1 的情况
NOT MATCHED根据MERGE 文档,默认值是NOT MATCHED BY TARGET,这意味着该行存在于源中,但不存在于 的目标中MERGE。
为了避免使用 插入不匹配的行source.BitCondition = 1,您可以添加一个AND条件:
WHEN NOT MATCHED BY TARGET AND (source.BitCondition = 0) THEN
INSERT INTO TargetTable
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9521 次 |
| 最近记录: |