SQL Server

Microsoft SQL Server 是由 Microsoft 开发的关系数据库管理系统。 连接到 SQL Server 以管理数据。 可以对表中的行执行各种作,例如创建、更新、获取和删除。

此连接器在以下产品和区域中可用:

服务 Class 区域
Copilot Studio 高级 所有 Power Automate 区域
逻辑应用程序 标准 所有 逻辑应用区域
Power Apps 高级 所有 Power Apps 区域
Power Automate 高级 所有 Power Automate 区域
连接器元数据
发布者 Microsoft

连接器深入

本文介绍适用于 Azure 逻辑应用、Power Automate 和 Power Apps 的 SQL Server 托管 连接器的作。 SQL Server 内置 连接器仅适用于 Azure 逻辑应用中的标准逻辑应用工作流。

Authentication

如果要创建非Microsoft Entra ID(Microsoft Entra ID)连接,请使用连接字符串身份验证选项。 请确保提供与连接中定义的服务器名称和数据库名称值相同的值。

Microsoft Entra ID 身份验证

Microsoft Entra ID 身份验证的已知限制

由于当前的身份验证管道限制,Microsoft与 SQL Server 的 Entra ID 连接不支持Microsoft Entra ID 来宾用户。 若要解决此问题,请改用 SQL Server 身份验证或 Windows 身份验证。

为 SQL Server 启用Microsoft Entra ID 身份验证

  1. 将帐户设置为 SQL Microsoft Entra ID(Microsoft Entra ID)成员并预配帐户。 有关详细信息,请参阅 使用 Azure SQL 配置和管理 Microsoft Entra ID 身份验证

  2. 在 SQL 服务器上,设置Microsoft Entra ID 管理员。

    1. 在 Azure 门户中,转到要在其中启用 Microsoft Entra ID 身份验证的 SQL Server。
    2. 在 SQL Server 资源菜单上的 “设置”下,选择 Microsoft Entra ID
    3. Microsoft“条目 ID ”窗格工具栏上,选择“ 设置管理员”。
    4. 查找并选择当前租户中的 Microsoft Entra ID 用户帐户,使其成为服务器管理员。 保存更改。
  3. 在 Microsoft Entra ID 租户中,创建并注册用于访问 SQL 数据库的 Microsoft Entra ID 应用程序。 有关详细信息,请参阅 SQL Server - 设置 Microsoft Entra ID 身份验证

    1. 在 Azure 门户中,转到要在其中创建 Microsoft Entra ID 应用程序的 Microsoft Entra ID 租户。

    2. 在租户菜单上的“ 管理”下,选择 “应用注册>新建注册”。

    3. “注册应用程序 ”窗格中,提供应用程序的名称。 请记住此名称,以便以后可以创建用户并授予对 SQL 数据库的角色访问权限。

    4. 完成后,选择“ 注册”,创建Microsoft Entra ID 应用程序。

    5. “应用注册 ”窗格中,选择新的Microsoft Entra ID 应用程序。 在应用程序菜单上,选择 “证书和机密>新建客户端机密”。

    6. 提供机密的说明,并选择过期时间。

  4. 使用设置为服务器管理员的 Microsoft Entra ID 用户帐户的凭据登录到 SQL Server 和数据库。

  5. 在 SQL 数据库中,创建一个包含的用户来表示Microsoft Entra ID 应用程序。 此步骤需要Microsoft SQL Server Management Studio (SSMS)。

    以下步骤将Microsoft Entra ID 应用程序的角色db_datareaderdb_datawriter分配为名称example-Azure-AD-application-name。 运行指定的命令时,请记住替换为 example-Azure-AD-application-name Microsoft Entra ID 应用程序的名称,并根据需要分配所需的角色。

    1. 启动 SSMS 并连接到Microsoft Entra ID 应用程序将访问的 SQL Server。

    2. 身份验证中,将 Active Directory - 通用与 MFA 支持 以及你设置为服务器管理员的 Microsoft Entra ID 帐户配合使用。

    3. 对象资源管理器中,展开 “数据库” 文件夹。

    4. 找到数据库,打开数据库快捷菜单,然后选择“ 新建查询”。

    5. 在查询窗口中,执行以下命令,将 Microsoft Entra ID 应用程序链接到数据库中的新用户:

      CREATE USER [example-Azure-AD-app-name] FROM EXTERNAL PROVIDER
      
    6. 清除查询窗口。 然后运行以下命令,将 db_datareader 角色分配给 Microsoft Entra ID 应用程序:

      ALTER ROLE db_datareader ADD MEMBER [example-Azure-AD-application-name]
      
    7. 重复上一步,将 db_datawriter 角色分配给 Microsoft Entra ID 应用程序:

      ALTER ROLE db_datawriter ADD MEMBER [example-Azure-AD-application-name]
      

托管标识身份验证

目前,只有 Azure 逻辑应用支持 SQL Server 连接器的 托管标识身份验证

服务主体身份验证

在逻辑应用上设置托管标识

  1. 在 Azure 门户中,转到逻辑应用资源。

  2. 启用系统分配的标识或用户分配的标识。 如果没有用户分配的标识,必须首先创建该标识。 有关详细信息,请参阅在 Azure 逻辑应用中使用托管标识对 Azure 资源的身份验证访问

  3. 如果选择了用户分配的标识,请确保将该标识添加到逻辑应用资源。

    1. 在 Azure 门户中,浏览到要使用的托管标识的逻辑应用资源。
    2. 在逻辑应用导航菜单上的 “设置”下,选择“ 标识”。
    3. 在“用户分配”选项卡上,选择“添加”。
    4. 选择要使用的托管标识,然后选择“ 添加”。

为托管标识身份验证设置 SQL Server

  1. 在 SQL 服务器上,设置Microsoft Entra ID 管理员。

    1. 在 Azure 门户中,浏览到要在其中启用 Microsoft Entra ID 身份验证的 SQL Server。
    2. 在 SQL Server 资源菜单上的 “设置”下,选择 Microsoft Entra ID
    3. Microsoft“条目 ID ”窗格工具栏上,选择“ 设置管理员”。
    4. 查找并选择当前租户中的 Microsoft Entra ID 用户帐户,使其成为服务器管理员。 保存更改。
  2. 在 SQL 数据库中,创建一个用于表示托管标识的包含用户。 此步骤需要Microsoft SQL Server Management Studio (SSMS)。

    以下步骤将角色分配给具有名称example-managed-identity-namedb_datareader托管标识。 运行指定的命令时,请记住替换为 example-managed-identity-name 托管标识的名称,并根据需要分配正确的角色。 例如, db_datareader 无法执行写入作。

    1. 启动 SSMS 并连接到托管标识将访问的 SQL Server。

    2. 身份验证中,将 Active Directory - 通用与 MFA 支持 以及你设置为服务器管理员的 Microsoft Entra ID 帐户配合使用。

    3. 对象资源管理器中,展开 “数据库” 文件夹。

    4. 找到数据库,打开数据库快捷菜单,然后选择“ 新建查询”。

    5. 在查询窗口中,执行以下命令,将托管标识链接到数据库中的新用户:

      CREATE USER [example-managed-identity-name] FROM EXTERNAL PROVIDER
      
    6. 清除查询窗口。 然后运行以下命令,将角色分配给管理标识:

      ALTER ROLE db_datareader ADD MEMBER [example-managed-identity-name]
      

      注释

      如果将角色分配到数据库级别的托管标识,则标识将没有列出所有数据库所需的范围。 在 SQL 触发器或作中选择 “数据库名称 ”列表时,将收到如下示例所示的错误:

      Couldn't retrieve values. Error code: 'Unauthorized', Message: 'Credentials are missing or not valid'.
      Inner exception: The credentials provided for the SQL source are invalid
      

      若要解决此问题,有以下选项:

      • 分配一个服务器级角色,该角色可将所有数据库列出到托管标识。
      • 在 SQL 触发器或作中,使用 Enter 自定义值选项输入 数据库名称。

有关详细信息,请查看以下文档:

虚拟网络支持

当在链接到虚拟网络的 Power Platform 环境中使用连接器时,限制将适用:

作的已知问题和限制

简短说明 Operations 详细说明
获取作输出中的确定性结果 获取行 (V2) Order By建议使用参数,以便在作输出中获取确定性结果。 如果未 Order By 指定,SQL Server 默认使用主键或唯一键。 非确定性结果可能会导致问题,例如在启用分页时复制作输出中的记录。 SQL 视图不支持主键,这是 SQL Server 本身的限制。
执行 SQL 查询受限支持 执行 SQL 查询 (V2) 本地 SQL Server 不支持。
常规 CRUD 要求 获取行 (V2)
获取行 (V2)
更新行 (V2)
删除行 (V2)
对于 Azure SQL 实例使用情况,将剪裁字符串值。 因此,空白字符串将转换为空字符串。

对于 INSERT 和 UPDATE作,连接器将返回更新的行。 这要求连接还需要具有从 SQL Server 读取数据的权限。

以下作需要主键:
- GetItem
- PatchItem
- DeleteItem
聚合转换参数支持 获取行 (V2) 仅支持以下聚合转换:

- filter:允许筛选输入集。 支持与 . 相同的表达式 $filter。 示例:filter(ColName1 eq 1)

- 聚合:允许使用以下方法之一进行聚合:average、、maxminsumcountdistinct。 示例:aggregate(ColName2 with max as MaxValue)

可以组合多个运算符,用正斜杠分隔,以表示它们已连续应用。 这意味着每个转换的结果是下一个转换的输入。 示例:filter(ColName1 eq 4)/aggregate(ColName2 with sum as MaxWorkItemId)
执行 SQL 查询时重写正式参数的数据类型 执行 SQL 查询 [已弃用]
执行 SQL 查询 (V2)
在 SQL 查询上定义正式参数时输入的数据类型可能会被重写,因为连接器的基础实现通过提供的参数 确定类型。
使用正式参数的 IN 运算符要求单独定义传入值 执行 SQL 查询 (V2) 在将正式参数与 IN 运算符一起使用时,需要单独定义传入值,而不是作为单个正式参数来定义多个逗号分隔值。 示例:SELECT * FROM tableName WHERE columnName IN (@formalParameterA, @formalParameterB, @formalParameterC)
使用 Azure Sql DataWareHouse DB 失败 插入行 (V2) 在 Power Apps 中使用 Azure SQL Datawarehouse DB 会导致由于连接器在 DB 上的执行语法不匹配而失败。

请在 Power Automate 中使用 Azure SQL Datawarehouse 连接器创建流,从 PowerApps 触发流,或形成查询并在 “执行 SQL 查询”(V2) 作中使用它。

触发器的已知问题和限制

注释

关闭并打开流不会重置触发器状态。

简短说明 Operations 详细说明
修改项:行作 修改项时 (V2) 同时对 INSERT 和 UPDATE 行作触发。
修改项:列要求 修改项时 (V2) 需要 ROWVERSION 列。
创建项:列要求 创建项时 (V2) 需要 IDENTITY 列。
创建一个项目 创建项时 (V2) 使用最新插入行的标识列值作为阈值(触发器状态)以后标识新插入的行。 逻辑假定每个新行的标识必须大于前一行。 因此,如果由于显式 t-sql 命令或表截断而重置表的标识序列,触发器逻辑将跳过现有流的新行。 有两种不同的解决方法:首先,可以通过更新触发器作卡来重置流触发器状态(例如,重命名它、更新参数或添加新连接),并保存更改。 或者,可以使用 以下方法还原目标表标识序列。

一般已知问题和限制

  • 如果在表中定义了 SQL 服务器端触发器,则插入并更新到表将不起作用。

    若要解决此问题,有以下选项:

    • 使用存储过程或本机查询。
    • 从 SQL 表中删除触发器。
  • 以下限制适用于将 SQL 连接器与本地 SQL Server 配合使用:

    • 本地 SQL Server 支持的最低版本是 SQL Server 2005。
    • 请求大小限制是 2 MB 到本地 SQL Server。
    • 响应大小限制是 8 MB 到本地 SQL Server。
  • 以下限制适用于通过网关调用本地 SQL Server 上的存储过程:

    • 不会返回参数的 OUTPUT 输出值。 仍可以为参数指定输入值 OUTPUT
    • ResultSets 值为 Untyped。
    • 返回值不可用。
    • 仅返回第一个结果集。
    • 结果集不支持 Dynamics 架构。
  • 以下数据类型不能用作查询选项谓词:

    • date
    • datetime
    • datetime2
    • smalldatetime
  • 不支持设置强制加密。 默认情况下,SQL 数据库和 SQL 托管实例使用传输层安全性(TLS)加密动态数据来保护客户数据。 有关详细信息,请参阅 Azure SQL 安全概述

  • SQL 本机查询执行目前限制多个结果集支持。 仅返回结果集,最多返回第一个空一个结果集。

    若要解决此问题,请使用存储过程。

  • 执行 SQL 查询和存储过程后,结果集架构应包含唯一的非空列名。

  • 对于返回一组结果(如任何内部 SELECT 语句)的存储过程内的任何作,结果集架构应包含唯一的非空列名。

  • 如果 SQL 查询或存储过程的执行时间超过 110 秒,则作将超时。

    在 Azure 逻辑应用中,若要解决此限制,并了解如何执行长时间运行的存储过程,请参阅 逻辑应用中长时间运行的 SQL 存储过程

  • 在 Azure 逻辑应用中,只能从集成服务环境(ISE)访问 SQL Server 上的专用终结点。 有关详细信息,请参阅 访问 Azure 虚拟网络

  • 创建包含多个筛选器的查询时,可能会出现以下错误:“OData 查询语法树已超出节点计数限制”100”。 请尝试简化 OData 查询参数表达式”。 若要避免此问题,请优化筛选条件以减少其数量(例如,使用范围)。

  • 不建议在目标表字段(e.g. xml或文本数据类型)中存储大量数据(超过 30 兆字节)。 这可能会导致作和触发器的性能下降,导致 504 超时错误。 请使用“选择查询”参数仅包含相对较小的字段并避免较大的输出数据字段。 或者请改用专用文件存储,例如 Azure Blob 存储

  • 由于缺少 OUTPUT 子句支持,Azure Synapse 源不支持 CRUD作。 强烈建议改用专用 Azure SQL 数据仓库 连接器。

  • Power Platform 和逻辑应用导航器视图限制为 10,000 个表的列表大小。

  • 不支持不符合 OData 标准标识符 的数据库架构(以数字开头的列名,包含代理项对字符等)。 客户可以使用视图来抽象列的名称,也可以使用 SQL 扩展属性来处理使用补充平面字符,使其与数据库架构分开,请参阅: 将扩展属性添加到表中的列

  • 将 SQL 连接器用作虚拟表的数据源时,服务器和数据库值必须在源数据集与所使用的连接之间匹配。 使用 SQL 身份验证时,数据集值可以设置为默认值,默认值,因为连接已包含服务器和数据库值。 如果显式声明数据集连接值,则它们必须与连接中的值匹配,否则会出现错误,例如“出现问题。 无法打开您的表格。 请尝试重新加载或重新打开。“或”无效数据源“可能发生。

  • 当 Power Automate 流中使用的视图发生架构更改时,在针对更新视图创建新连接之前,触发器可能不会触发 - 仅刷新连接不足以重置针对更新视图的触发器。

  • SQL 连接器目前不支持表格数据流 (TDS) 协议 8.0。

特殊限制

  • 在不同情况下,SQL 连接器具有不同的限制。 下表中, 本机 作包括 SQL 存储过程和 SQL 查询。 CRUD 代表创建、读取、更新和删除作。

  • 除了以下限制之外,还会根据给定时间段内以前请求花费的总时间应用 connectionID 级别限制。

服务 环境 Operations Name 调用 续订期(秒)
逻辑应用和 Power Automate 共享环境 Native 每个连接的 API 调用数 500 10
逻辑应用和 Power Automate 共享环境 CRUD 每个连接的 API 调用数 100 10
逻辑应用和 Power Automate 共享环境 Native 每个连接的并发调用数 200 -
逻辑应用和 Power Automate 共享环境 CRUD 每个连接的并发调用数 125 -
Power Apps 共享环境 全部 每个用户的 API 调用 300 30
Power Apps 共享环境 全部 每个连接的并发调用数 125 -

注释

并发调用是特定连接可以发出的正在进行的请求数。 例如,使用 Azure 逻辑应用本机调用,单个连接可以进行 200 个并发调用。 如果所有 200 个调用仍在执行,则任何后续调用都会返回 429 错误。 不存在时间限制,因为调用可能需要任意时间。 但是,调用限制的要点是防止过多长时间运行的查询来自单个连接,并负面影响其他连接。

例如,如果连接同时发出 200 次调用,并且每次调用执行 50 秒,则所有其他调用将失败,并且在接下来的 50 秒内将失败 429 错误。 一个或多个查询完成执行并返回结果后,将处理任何后续调用。

Power Apps 数据类型映射

请参阅 Power Apps SQL 文档

Power Apps 函数和作可委派给 SQL Server

请参阅 Power Apps SQL 委派文档

作中的正式参数

执行 SQL 查询 [已弃用]执行 SQL 查询 (V2) 作允许使用正式参数。 它们被定义为键值对,其中 key 是参数名称,是 value SQL 数据类型,例如 INTNVARCHAR(255)。 定义名称和数据类型后,将显示该值的新输入字段。

将 V1 操作迁移到 V2 等效项

按照此处的步骤从 V1作迁移到其 V2 等效作。

重要

在开始迁移之前 ,始终 保存逻辑应用、Power Automate 流或 Power App 的副本以备份。

注释

所有 V2作都有两个额外的参数: Server NameDatabase Name。 这使 V2作能够支持 Microsoft Entra ID 身份验证。

操作类型 V1作 V2作等效项
Action 删除行 [已弃用] 删除行 (V2)
Action 执行 SQL 查询 [已弃用] 执行 SQL 查询 (V2)
Action 执行存储过程 执行存储过程 (V2)
Action 获取行 [已弃用] 获取行 (V2)
Action 获取行 [已弃用] 获取行 (V2)
Action 插入行 [已弃用] 插入行 (V2)
Action 列出连接公开的表 [已弃用] 获取表 (V2)
Action 更新行 [已弃用] 更新行 (V2)
Trigger 创建项时 [已弃用] 创建项时 (V2)
Trigger 修改项时 [已弃用] 修改项时 (V2)

标识 V1作

Power Automate

对于 Power Automate作,请打开 SQL Server作并 Code View 检查 host.operationId 值。 如果值与上面列出的 SQL Server V1作 ID 之一匹配,则需要将该作迁移到其 V2 等效项。

例如, PatchItem 作需要迁移到 PatchItem_V2

选择服务器名称

Logic Apps

若要大致了解至少包含一个 SQL Server V1作的逻辑应用,

  1. 打开 Azure 门户

  2. 打开 Azure Resource Graph 资源管理器

  3. 在占位符中输入订阅 ID 并运行以下查询,以获取需要注意的逻辑应用的摘要以及其中每个作的 SQL Server V1作计数。

    • 使用 V1作标识逻辑应用的 Azure Resource Graph 资源管理器脚本。

      resources
      | where subscriptionId == "<subscription-id>"
      | where type == "microsoft.logic/workflows"
      | extend propertiesJson=parse_json(properties)
      | extend actionsJson=propertiesJson["definition"]["actions"]
      | mv-expand actionsJson
      | where notnull(actionsJson)
      | extend path=extract("\"path\":\"(.*?)\"", 1, tostring(actionsJson))
      | where notnull(path) and path startswith "/datasets/default/"
      | extend actionConnectionName=extract("\"connection\":{\"name\":\"(.*?)\"}", 1, tostring(actionsJson))
      | where notnull(actionConnectionName)
      | parse actionConnectionName with "@parameters('$connections')['"parsedActionConnectionName"']['connectionId']"
      | extend tmpConnection = propertiesJson["parameters"]["$connections"]["value"][parsedActionConnectionName]
      | where notnull(tmpConnection)
      | extend connectionId=extract("\"id\":\"(.*?)\"", 1, tostring(tmpConnection))
      | where notnull(connectionId) and connectionId endswith "/managedApis/sql"
      | project id, name, resourceGroup, actionsJson
      | summarize v1ActionCount = count() by resourceGroup, logicAppName = name
      
    • 用于使用 V1 触发器标识逻辑应用的 Azure Resource Graph 资源管理器脚本。

      resources
      | where subscriptionId == "<subscription-id>"
      | where type == "microsoft.logic/workflows"
      | extend propertiesJson=parse_json(properties)
      | extend triggersJson=propertiesJson["definition"]["triggers"]
      | mv-expand triggersJson
      | where notnull(triggersJson)
      | extend path=extract("\"path\":\"(.*?)\"", 1, tostring(triggersJson))
      | where notnull(path) and path startswith "/datasets/default/"
      | extend triggerConnectionName=extract("\"connection\":{\"name\":\"(.*?)\"}", 1, tostring(triggersJson))
      | where notnull(triggerConnectionName)
      | parse triggerConnectionName with "@parameters('$connections')['"parsedTriggerConnectionName"']['connectionId']"
      | extend tmpConnection = propertiesJson["parameters"]["$connections"]["value"][parsedTriggerConnectionName]
      | where notnull(tmpConnection)
      | extend connectionId=extract("\"id\":\"(.*?)\"", 1, tostring(tmpConnection))
      | where notnull(connectionId) and connectionId endswith "/managedApis/sql"
      | project id, name, resourceGroup, triggersJson
      | summarize v1TriggerCount = count() by resourceGroup, logicAppName = name
      

迁移到 UX 上的 V2作

迁移逻辑应用和 Power Automate 自动化

  1. 打开包含 V1作的逻辑应用或 Power Automate 流。

  2. 在要更新的 V1作之前或之后添加作。

    添加作

  3. 单击 SQL Server 连接器,查找与要迁移的作等效的 V2。

    选择 V2作

  4. 选择要在 V2作上使用的连接。

    小窍门

    V2作支持Microsoft Entra ID 身份验证类型。 逻辑应用还支持 Azure 逻辑应用在 V2作上支持 托管标识身份验证

    有关详细信息,请参阅 “身份验证 ”部分。

  5. 输入服务器名称。

    • 如果使用 Windows AuthenticationSQL Server Authentication从下拉列表中选择服务器名称。

      选择服务器名称

    • 如果使用Service principalMicrosoft Entra IDManaged Identity身份验证类型,请单击下拉列表中的“输入自定义值”,然后输入服务器名称。

      输入自定义服务器名称

  6. 通过从下拉列表中选择数据库来输入数据库。

    选择数据库

  7. 输入其余参数,使其与 V1作相同。

  8. 完成 V1作配置后,删除 V2作。

    删除 V1作

    重要

    删除 V1作将导致从 V1 中删除所有动态内容;需要重新添加 V2 动态内容。

迁移 Power Apps

  1. 打开需要更新的应用。

  2. 删除所有 SQL 数据源。

    注释

    使用已删除数据源的公式将显示错误,这是预期的,后续步骤将得到修复。

    删除数据源

  3. 打开“设置”上的“即将推出的功能”选项卡,并在搜索框中键入“SQL”。 将推出“启用增强Microsoft SQL Server 连接器”功能。

    打开即将推出的功能

  4. 启用“启用增强Microsoft SQL Server 连接器”功能。

    注释

    默认情况下,此功能适用于所有新的 Power Apps。

    启用 SQL Server 增强功能

  5. 已读取数据源。

    已读数据源

  6. 验证应用行为,特别是在处理 DateTime 数据类型的表上。

  7. 保存应用。

通过 Azure 逻辑应用中的代码视图迁移作

对于更复杂的方案,可以通过更新工作流的定义来迁移作。

  1. 标识需要在逻辑应用中迁移的作(触发器和/或作)的名称。

  2. 打开要修改的逻辑应用的设计器,然后单击“代码视图”。

    打开代码视图

  3. 对于需要迁移的每个作:

    1. 查找作或触发器路径属性
    2. 在 path 属性中替换为 /datasets/default//v2/datasets/@{encodeURIComponent(encodeURIComponent('default'))},@{encodeURIComponent(encodeURIComponent('default'))}/.
  4. 更新所有作后,单击“设计器”。

    打开设计器视图

  5. 验证是否已成功迁移所有作。

    • 服务器和数据库名称应填充连接的值。
    • 还应填充所有其他参数。

    最终 V2 视图

  6. 保存并测试逻辑应用。

小窍门

如果需要,将作迁移到 V2 版本后,可以更新作的名称和连接。

下面是迁移 Get 行 [已弃用]的示例。

  1. 打开“代码视图”。

  2. 查找“获取行 [已弃用]”作。

    "actions": {
      "Get_rows_[DEPRECATED]": {
        "inputs": {
          "host": {
            "connection": {"name": "..."},
            "method": "get",
            "path": "/datasets/default/tables/.../items"
          },
          "runAfter": {},
          "type": "ApiConnection"
        }
      }
    }
    
  3. 使用上述提供的替换项更新路径的数据集段。

    "actions": {
      "Get_rows_[DEPRECATED]": {
        "inputs": {
          "host": {
            "connection": {"name": "..."},
            "method": "get",
            "path": "/v2/datasets/@{encodeURIComponent(encodeURIComponent('default'))},@{encodeURIComponent(encodeURIComponent('default'))}/tables/.../items"
          },
          "runAfter": {},
          "type": "ApiConnection"
        }
      }
    }
    
  4. 单击“设计器”返回到初始视图,并验证作是否已正确填充。

通过编辑流定义迁移作

  1. 标识需要在逻辑应用中迁移的作(触发器和/或作)的名称。

  2. 将流导出为包(ZIP)。

    导出流

  3. 提取 ZIP 文件。

  4. 打开解压缩 ZIP 的文件夹。

  5. 导航到 Microsoft.FlowGUID 命名文件夹,然后 flows导航到该文件夹。

  6. 在文本编辑器中打开 definition.json 文件。

    • 若要提高可读性,请格式化 JSON。
  7. 对于需要迁移的每个作:

    1. 查找作或触发器属性

    2. 将属性更新 inputs.host.operationId 为 V2 等效项。 可以在作的文档中找到该值。

      ZIP 结构

    3. 添加到 inputs.parameters 两个属性:

      • server with value default
      • database with value default
  8. 保存 definition.json 文件

  9. 导航回 manifest.json 和 Microsoft.Flow 所在的位置

  10. 选择 Microsoft.Flow 和 manifest.json,然后压缩到 ZIP 文件。

    重要

    请确保新的 ZIP 文件与原始 ZIP 文件具有相同的文件和文件夹结构。

    文件夹 Microsoft.Flow 和文件 manifest.json 必须 位于新 ZIP 文件的根目录中。 上传包时,无法具有相同的结构将导致错误。

    ZIP 结构

  11. 导航到 Power Automate 上的流。

  12. 通过导入包导入更新的流。 选择新创建的 ZIP,然后上传包。

    导入包

  13. 选择导入设置(导入/创建新设置),然后选择流将使用的连接。

  14. 导入完成后,打开新的/更新流。

  15. 验证作是否已更新

  • 服务器和数据库名称应填充连接的值。

  • 还应填充所有其他参数。

    V2 最终视图

小窍门

如果需要,一旦作迁移到 V2 版本,就可以在 UX 上更新作的名称和连接。

下面是迁移 执行 SQL 查询 [已弃用]的示例。

  1. 打开“代码视图”。

  2. 找到“执行 SQL 查询 [已弃用]”作。

    "actions": {
      "Execute_a_SQL_query_[DEPRECATED]": {
        // ...
        "inputs": {
          "host": {
            // ...
            "operationId": "ExecutePassThroughNativeQuery"
          },
          "parameters": {
            "query/query": "SELECT * from [dbo].[SampleTable] WHERE AnyId = 42",
          },
          // ..
        }
      }
    }
    
  3. 使用等效的 V2作 ID 更新作 ID,然后使用上述值添加服务器和数据库参数 default

    "actions": {
      "Execute_a_SQL_query_[DEPRECATED]": {
        // ...
        "inputs": {
          "host": {
            // ...
            "operationId": "ExecutePassThroughNativeQuery_V2"
          },
          "parameters": {
            "server": "default",
            "database": "default",
            "query/query": "SELECT * from [dbo].[SampleTable] WHERE AnyId = 42",
          },
          // ..
        }
      }
    }
    
    

重要

默认情况下,美国政府(GCC)环境中禁用Microsoft Entra ID 集成(Azure 商业)连接。 若要启用这些类型的连接,租户管理员必须在 Power Platform 管理中心中启用 “连接到 Azure 商业 ”设置。

启用此设置可以连接到 Azure 商业版中的资源,这些资源在 Power Platform US Government 符合性边界之外运行和发送数据。 这专用于允许从 Power Platform 连接器的 GCC云版本访问商业资源。

Microsoft Entra ID 集成(Azure 商业版)是唯一一种从美国政府(GCC)环境到 Azure 商业资源的身份验证类型。

默认禁用的 Azure 商业身份验证: 默认禁用

Power Platform 管理中心中的 “连接到 Azure 商业 ”设置: 管理员视图

设置

正在创建连接

连接器支持以下身份验证类型:

客户端证书身份验证 使用 PFX 证书和密码提供Microsoft Entra ID 凭据 所有区域 可共享
Microsoft Entra ID 集成 使用 Microsoft Entra ID 访问 SQL 数据库。 除美国政府以外的所有区域(GCC) 不可共享
Microsoft Entra ID 集成(Azure 商业版) 使用 Microsoft Entra ID 访问 Azure 商业版中的 SQL 数据库。 仅限美国政府(GCC) 不可共享
Microsoft Entra ID 集成(Azure 政府版) 使用 Microsoft Entra ID 访问 Azure 政府中的 SQL 数据库。 仅限美国政府(GCC) 不可共享
服务主体(Microsoft Entra ID 应用程序) 使用 Microsoft Entra ID 应用程序访问 SQL 数据库。 所有区域 可共享
SQL Server 身份验证 使用帐户名称和密码访问 SQL 数据库。 所有区域 可共享
Windows 身份验证 使用本地Microsoft Entra ID 帐户名称和密码访问 SQL 数据库。 所有区域 可共享
Windows 身份验证 (非共享) 使用本地Microsoft Entra ID 帐户名称和密码访问 SQL 数据库。 所有区域 不可共享
默认值 [已弃用] 此选项仅适用于没有显式身份验证类型的较旧连接,并且仅用于向后兼容性。 所有区域 不可共享

客户端证书身份验证

身份验证 ID:certOauth

适用:所有区域

使用 PFX 证书和密码提供Microsoft Entra ID 凭据

这是可共享的连接。 如果 Power App 与其他用户共享,则连接也会共享。 有关详细信息,请参阅 画布应用的连接器概述 - Power Apps |Microsoft Docs

Name 类型 Description 必选
租户 字符串 True
客户 ID 字符串 Microsoft Entra ID 应用程序的客户端 ID
客户端证书机密 clientCertificate 此应用程序允许的客户端证书机密 True

已集成 Microsoft Entra ID

身份验证 ID:oauth

适用:除美国政府以外的所有区域(GCC)

使用 Microsoft Entra ID 访问 SQL 数据库。

这是不可共享的连接。 如果 Power App 与另一个用户共享,系统会提示其他用户显式创建新连接。

Microsoft Entra ID 集成(Azure 商业版)

身份验证 ID:oauthCom

适用:仅限美国政府(GCC)

使用 Microsoft Entra ID 访问 Azure 商业版中的 SQL 数据库。

这是不可共享的连接。 如果 Power App 与另一个用户共享,系统会提示其他用户显式创建新连接。

Microsoft Entra ID 集成(Azure 政府版)

身份验证 ID:oauth

适用:仅限美国政府(GCC)

使用 Microsoft Entra ID 访问 Azure 政府中的 SQL 数据库。

这是不可共享的连接。 如果 Power App 与另一个用户共享,系统会提示其他用户显式创建新连接。

服务主体(Microsoft Entra ID 应用程序)

身份验证 ID:oauthSP

适用:所有区域

使用 Microsoft Entra ID 应用程序访问 SQL 数据库。

这是可共享的连接。 如果 Power App 与其他用户共享,则连接也会共享。 有关详细信息,请参阅 画布应用的连接器概述 - Power Apps |Microsoft Docs

Name 类型 Description 必选
租户 字符串 True
客户 ID 字符串 True
客户端密码 securestring True

SQL Server 身份验证

身份验证 ID:sqlAuthentication

适用:所有区域

使用帐户名称和密码访问 SQL 数据库。

这是可共享的连接。 如果 Power App 与其他用户共享,则连接也会共享。 有关详细信息,请参阅 画布应用的连接器概述 - Power Apps |Microsoft Docs

Name 类型 Description 必选
SQL Server 名称 字符串 指定 SQL Server 的名称(server[:p ort]) True
SQL 数据库名称 字符串 SQL 数据库名称 True
用户名 securestring 用户名凭据 True
密码 securestring 密码凭据 True
Gateway gatewaySetting 本地网关(请参阅 https://docs.microsoft.com/data-integration/gateway 更多详细信息)

Windows 身份验证

身份验证 ID:windowsAuthentication

适用:所有区域

使用本地Microsoft Entra ID 帐户名称和密码访问 SQL 数据库。

这是可共享的连接。 如果 Power App 与其他用户共享,则连接也会共享。 有关详细信息,请参阅 画布应用的连接器概述 - Power Apps |Microsoft Docs

Name 类型 Description 必选
SQL Server 名称 字符串 指定 SQL Server 的名称(server[:p ort]) True
SQL 数据库名称 字符串 SQL 数据库名称 True
用户名 securestring 用户名凭据 True
密码 securestring 密码凭据 True
Gateway gatewaySetting 本地网关(请参阅 https://docs.microsoft.com/data-integration/gateway 更多详细信息) True

Windows 身份验证 (非共享)

身份验证 ID:windowsAuthenticationNonShared

适用:所有区域

使用本地Microsoft Entra ID 帐户名称和密码访问 SQL 数据库。

这是不可共享的连接。 如果 Power App 与另一个用户共享,系统会提示其他用户显式创建新连接。

Name 类型 Description 必选
用户名 securestring 用户名凭据 True
密码 securestring 密码凭据 True
Gateway gatewaySetting 本地网关(请参阅 https://docs.microsoft.com/data-integration/gateway 更多详细信息) True

默认值 [已弃用]

适用:所有区域

此选项仅适用于没有显式身份验证类型的较旧连接,并且仅用于向后兼容性。

这是不可共享的连接。 如果 Power App 与另一个用户共享,系统会提示其他用户显式创建新连接。

Name 类型 Description 必选
SQL Server 名称 字符串 SQL Server 名称 True
SQL 数据库名称 字符串 SQL 数据库名称 True
身份验证类型 字符串 用于连接到数据库的身份验证类型
用户名 securestring 用户名凭据 True
密码 securestring 密码凭据 True
Gateway gatewaySetting 本地网关(请参阅 https://docs.microsoft.com/data-integration/gateway 更多详细信息)

限制

名称 调用 续订期
每个连接的 API 调用数 100 10 秒

操作

使用 Power Query 转换数据

使用 Power Query 转换数据。 注意:使用 SQL Microsoft Entra ID 进行连接时,此作不起作用。

列出连接公开的表 [已弃用]

此作已弃用。 请改用 Get 表 (V2)。

列出连接公开的表

删除行 [已弃用]

此作已弃用。 请改用“删除”行(V2)。

此作从表中删除行。

删除行 (V2)

此作从表中删除行。

执行 SQL 查询 [已弃用]

此作已弃用。 请改用“执行 SQL 查询”(V2)。

执行 SQL 查询

执行 SQL 查询 (V2)

执行 SQL 查询 (V2)

执行存储过程

此作运行存储过程。

执行存储过程 (V2)

此作运行存储过程。

插入行 [已弃用]

此作已弃用。 请改用“插入”行(V2)。

此作将新行插入表中。

插入行 (V2)

此作将新行插入表中。

更新行 [已弃用]

此作已弃用。 请改用更新行(V2)。

此作更新表中的现有行。

更新行 (V2)

此作更新表中的现有行。

获取行 [已弃用]

此作已弃用。 请改用“获取”行(V2)。

此作从表中获取一行。

获取行 [已弃用]

此作已弃用。 请改用“获取行”(V2)。

此作从表中获取行。

获取行 (V2)

此作从表中获取一行。

获取行 (V2)

此作从表中获取行。

获取表 (V2)

此作从数据库获取表。

使用 Power Query 转换数据

使用 Power Query 转换数据。 注意:使用 SQL Microsoft Entra ID 进行连接时,此作不起作用。

参数

名称 密钥 必需 类型 说明
查询
query mquery

查询文本

返回

此操作输出是动态内容。

列出连接公开的表 [已弃用]

此作已弃用。 请改用 Get 表 (V2)。

列出连接公开的表

返回

表示表的列表。

Body
TablesList

删除行 [已弃用]

此作已弃用。 请改用“删除”行(V2)。

此作从表中删除行。

参数

名称 密钥 必需 类型 说明
表名称
table True string

表的名称

行 ID
id True string

要删除的行的唯一标识符

删除行 (V2)

此作从表中删除行。

参数

名称 密钥 必需 类型 说明
服务器名称
server True string

SQL Server 的名称

数据库名称
database True string

数据库名称

表名称
table True string

表的名称

行 ID
id True string

要删除的行的唯一标识符

执行 SQL 查询 [已弃用]

此作已弃用。 请改用“执行 SQL 查询”(V2)。

执行 SQL 查询

参数

名称 密钥 必需 类型 说明
Query
query True dynamic

查询正文

返回

此操作输出是动态内容。

执行 SQL 查询 (V2)

执行 SQL 查询 (V2)

参数

名称 密钥 必需 类型 说明
服务器名称
server True string

SQL Server 的名称

数据库名称
database True string

数据库名称

Query
query True dynamic

查询正文

返回

此操作输出是动态内容。

执行存储过程

此作运行存储过程。

参数

名称 密钥 必需 类型 说明
过程名称
procedure True string

存储过程的名称

参数列表
parameters True dynamic

存储过程的输入参数

返回

此操作输出是动态内容。

执行存储过程 (V2)

此作运行存储过程。

参数

名称 密钥 必需 类型 说明
服务器名称
server True string

SQL Server 的名称

数据库名称
database True string

数据库名称

过程名称
procedure True string

存储过程的名称

参数列表
parameters True dynamic

存储过程的输入参数

返回

此操作输出是动态内容。

插入行 [已弃用]

此作已弃用。 请改用“插入”行(V2)。

此作将新行插入表中。

参数

名称 密钥 必需 类型 说明
表名称
table True string

表的名称

item True dynamic

要插入到指定表中的行

返回

此操作输出是动态内容。

插入行 (V2)

此作将新行插入表中。

参数

名称 密钥 必需 类型 说明
服务器名称
server True string

SQL Server 的名称

数据库名称
database True string

数据库名称

表名称
table True string

表的名称

item True dynamic

要插入到指定表中的行

返回

此操作输出是动态内容。

更新行 [已弃用]

此作已弃用。 请改用更新行(V2)。

此作更新表中的现有行。

参数

名称 密钥 必需 类型 说明
表名称
table True string

表的名称

行 ID
id True string

要更新的行的唯一标识符

item True dynamic

具有更新值的行

返回

此操作输出是动态内容。

更新行 (V2)

此作更新表中的现有行。

参数

名称 密钥 必需 类型 说明
服务器名称
server True string

SQL Server 的名称

数据库名称
database True string

数据库名称

表名称
table True string

表的名称

行 ID
id True string

要更新的行的唯一标识符

item True dynamic

具有更新值的行

返回

此操作输出是动态内容。

获取行 [已弃用]

此作已弃用。 请改用“获取”行(V2)。

此作从表中获取一行。

参数

名称 密钥 必需 类型 说明
表名称
table True string

SQL 表的名称

行 ID
id True string

要检索的行的唯一标识符

返回

此操作输出是动态内容。

获取行 [已弃用]

此作已弃用。 请改用“获取行”(V2)。

此作从表中获取行。

参数

名称 密钥 必需 类型 说明
表名称
table True string

SQL 表的名称

聚合转换
$apply string

OData 聚合转换序列

筛选查询
$filter string

ODATA 筛选器查询,用于限制返回的条目(例如 stringColumn eq 'string' OR numberColumn lt 123)。

订单依据
$orderby string

用于指定条目顺序的 ODATA orderBy 查询。

跳过计数
$skip integer

要跳过的条目数(默认值 = 0)。

Top Count
$top integer

要检索的条目总数(默认值 = 全部)。

选择“查询”
$select string

要从条目检索的特定字段(默认值 = 全部)。

返回

此操作输出是动态内容。

获取行 (V2)

此作从表中获取一行。

参数

名称 密钥 必需 类型 说明
服务器名称
server True string

SQL Server 的名称

数据库名称
database True string

数据库名称

表名称
table True string

SQL 表的名称

行 ID
id True string

要检索的行的唯一标识符

返回

此操作输出是动态内容。

获取行 (V2)

此作从表中获取行。

参数

名称 密钥 必需 类型 说明
服务器名称
server True string

SQL Server 的名称

数据库名称
database True string

数据库名称

表名称
table True string

SQL 表的名称

聚合转换
$apply string

OData 聚合转换序列

筛选查询
$filter string

ODATA 筛选器查询,用于限制返回的条目(例如 stringColumn eq 'string' OR numberColumn lt 123)。

订单依据
$orderby string

用于指定条目顺序的 ODATA orderBy 查询。

跳过计数
$skip integer

要跳过的条目数(默认值 = 0)。

Top Count
$top integer

要检索的条目总数(默认值 = 全部)。

选择“查询”
$select string

要从条目检索的特定字段(默认值 = 全部)。

返回

此操作输出是动态内容。

获取表 (V2)

此作从数据库获取表。

参数

名称 密钥 必需 类型 说明
服务器名称
server True string

SQL Server 的名称

数据库名称
database True string

数据库名称

返回

表示表的列表。

Body
TablesList

触发器

修改项时 [已弃用]

此作已弃用。 请改用修改项时(V2)。

在 SQL 中修改/插入项时触发流

修改项时 (V2)

在 SQL 中修改/插入项时触发流

创建项时 [已弃用]

此作已弃用。 请改用创建项时(V2)。

在 SQL 中创建项时触发流

创建项时 (V2)

在 SQL 中创建项时触发流

修改项时 [已弃用]

此作已弃用。 请改用修改项时(V2)。

在 SQL 中修改/插入项时触发流

参数

名称 密钥 必需 类型 说明
表名称
table True string

SQL 表的名称

筛选查询
$filter string

ODATA 筛选器查询,用于限制返回的条目(例如 stringColumn eq 'string' OR numberColumn lt 123)。

Top Count
$top integer

要检索的条目总数(默认值 = 全部)。

订单依据
$orderby string

用于指定条目顺序的 ODATA orderBy 查询。

选择“查询”
$select string

要从条目检索的特定字段(默认值 = 全部)。

返回

此操作输出是动态内容。

修改项时 (V2)

在 SQL 中修改/插入项时触发流

参数

名称 密钥 必需 类型 说明
服务器名称
server True string

SQL Server 的名称

数据库名称
database True string

数据库名称

表名称
table True string

SQL 表的名称

筛选查询
$filter string

ODATA 筛选器查询,用于限制返回的条目(例如 stringColumn eq 'string' OR numberColumn lt 123)。

Top Count
$top integer

要检索的条目总数(默认值 = 全部)。

订单依据
$orderby string

用于指定条目顺序的 ODATA orderBy 查询。

选择“查询”
$select string

要从条目检索的特定字段(默认值 = 全部)。

返回

此操作输出是动态内容。

创建项时 [已弃用]

此作已弃用。 请改用创建项时(V2)。

在 SQL 中创建项时触发流

参数

名称 密钥 必需 类型 说明
表名称
table True string

SQL 表的名称

筛选查询
$filter string

ODATA 筛选器查询,用于限制返回的条目(例如 stringColumn eq 'string' OR numberColumn lt 123)。

Top Count
$top integer

要检索的条目总数(默认值 = 全部)。

订单依据
$orderby string

用于指定条目顺序的 ODATA orderBy 查询。

选择“查询”
$select string

要从条目检索的特定字段(默认值 = 全部)。

返回

此操作输出是动态内容。

创建项时 (V2)

在 SQL 中创建项时触发流

参数

名称 密钥 必需 类型 说明
服务器名称
server True string

SQL Server 的名称

数据库名称
database True string

数据库名称

表名称
table True string

SQL 表的名称

筛选查询
$filter string

ODATA 筛选器查询,用于限制返回的条目(例如 stringColumn eq 'string' OR numberColumn lt 123)。

Top Count
$top integer

要检索的条目总数(默认值 = 全部)。

订单依据
$orderby string

用于指定条目顺序的 ODATA orderBy 查询。

选择“查询”
$select string

要从条目检索的特定字段(默认值 = 全部)。

返回

此操作输出是动态内容。

定义

Table

表示表。

名称 路径 类型 说明
Name
Name string

表的名称。 名称在运行时使用。

显示名称
DisplayName string

表的显示名称。

DynamicProperties
DynamicProperties object

连接器提供给客户端的其他表属性。

TablesList

表示表的列表。

名称 路径 类型 说明
value
value array of Table

表列表