跳转到主要内容

表和列

高级选项卡设置

以下设置位于高级选项卡上:

设置描述
发送身份以其他用户或共享邮箱的身份发送电子邮件。使用 AzureAD 时,需要委派的 Mail.Send.Shared 权限。使用仅限应用的方案时,需要 Mail.Send 应用程序权限,以及由 Exchange 管理员在目标邮箱上授予的“发送为”权限。
代表发送代表其他用户发送电子邮件。收件人会同时看到发件人和发送该邮件的邮箱。

UPSERT 查询行为

在表结构模式和映射模式下,均按列配置 UPSERT 设置。右键单击某列,然后从上下文菜单中选择 UPSERT 设置。

随即打开 UPSERT 设置 对话框。默认情况下,启用 UPSERT 设置 开关为 ON,这意味着端口会先检查目标中是否已存在记录,再决定执行 INSERT 还是 UPDATE。

用于确定记录是否存在的查询由以下部分中描述的逻辑控制。

UPSERT 设置已启用

当 启用 UPSERT 设置 处于开启状态时,查询行为取决于在 UPSERT 设置 列表中选择的选项:UPSERT by(按单列匹配)或 Query to select UPSERT key(使用自定义查找查询)。

按 Id UPSERT

在 UPSERT 设置 列表中选择 UPSERT by 并选择表的键列后,端口会发出查询,以确定是否存在具有匹配键值的任何记录:
匹配结果更新;没有匹配结果导致插入。 如果输入 XML 中不存在键列,则始终插入记录:

按非键列 UPSERT

在 UPSERT 设置 列表中选择 UPSERT by 并选择非键列后,端口会发出查询,以确定是否存在该列包含匹配值的记录,SELECT 语句以表的主键为目标(以下示例演示向 Orders 表执行 UPSERT):
SELECT 查询始终以 SELECT 语句中表的键列为目标。如果匹配成功,则输入 XML 中的数据将更新到数据源中。如果没有匹配,则插入记录。
如果输入中未指定所选的 UPSERT by 列,则查找将与 NULL 值一起使用,如以下查询所示:

使用自定义查询

在 UPSERT 设置 列表中选择 Query to select UPSERT key 后,可以编写自定义查询来确定 UPSERT 键。这样可以使用比单列匹配更复杂的逻辑来执行查找。考虑以下查询:
在此示例中,必须选择表的键列,以便为 UPDATE 提供足够的条件。@OrderID 语法用于引用匹配输入 XML 中的值。还可以使用静态值:'Active' 周围的引号表示该子句使用静态值。 同样,键列的成功匹配用于形成更新请求。如果没有匹配,则插入记录。
当对数据库插入的行为有疑问时,请查看 UPSERT 尝试的 .log 文件:用于指导该行为的逻辑的完整细分将发送到日志文件。

UPSERT 设置已禁用

要对某列禁用 UPSERT 行为,请打开 UPSERT 设置 对话框(右键单击目标列并选择 UPSERT 设置),将 启用 UPSERT 设置 切换为 OFF,然后单击 应用。 禁用 UPSERT 设置后,端口仅发出 INSERT 查询。检查输入映射的代码视图显示表的 action 属性是 insert:
无论主键是否存在,向表发出的所有查询都被视为插入。要根据表更新所有收到的记录,可以将此操作关键字设置为 update,如以下代码片段所示:
当操作定义为 update 时,应用程序期望表的键列(例如 Id)存在。如果未提供键列,则 UPDATE 命令的效果可能会因目标数据库类型而异,因此可能会看到更改的行数比预期多,或者根本没有更改。

知行之桥工作流示例