表格和列
UPSERT 查询行为
默认情况下,列映射中的 UPSERT 滑块设置为 ON。这意味着 UPSERT 映射在 INSERT 记录(如果没有匹配记录)或 UPDATE 记录(如果记录已存在)之前确定记录是否存在于目标中。

用于确定该值的查询由以下部分中描述的逻辑确定。
UPSERT 滑块设置为开
当滑块设置为 ON 时,查询行为会根据在 UPSERT By 和 执行此查询... 单选按钮中选择的内容而变化。
按 ID UPSERT
如果输入 XML 中存在键列,则会向数据库发出查询以确定是否存在具有匹配键的任何记录:按非键列进行 UPSERT
通过选择表的主键,向数据库发出查询,以确定是否存在所选 UPSERT By 列包含匹配值的记录:如果输入中未指定所选的 UPSERT By 列,则查找将与 NULL 值一起使用,如以下查询所示:
使用自定义查询
还可以编写自定义查询来选择 UPSERT 键。此选项允许使用比单列匹配更复杂的逻辑来执行查找。考虑以下查询:@OrderID 语法用于引用匹配输入 XML 中的值。还可以使用静态值:'Active' 周围的引号表示该子句使用静态值。
同样,键列的成功匹配用于形成更新请求。如果没有匹配,则插入记录。
UPSERT 滑块设置为关闭
当滑块设置为 OFF 时,端口只需将所有查询插入数据库即可。检查输入映射的代码视图显示表的action 属性是 insert:
update,如以下代码片段所示: