【问题标题】:Why SQL (On-Prem using Data Gateway) Insert row (V2) action in Logic App does not populate tables?为什么逻辑应用中的 SQL(使用数据网关的本地)插入行 (V2) 操作不填充表?
【发布时间】:2022-01-17 13:27:15
【问题描述】:

我有一个本地 SQL,我正在使用本地数据网关在我的逻辑应用程序中访问它。我在我的 SQL 数据库中创建了一个表,如下所示:

SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[Temp_Emp_CC](
    [Timestamp] [timestamp] NOT NULL,
    [EmployeeCode] [int] IDENTITY(1,1) NOT NULL,
    [CostCentreCode] [varchar](50) NOT NULL,
 CONSTRAINT [PK_Temp_Emp_CC] PRIMARY KEY CLUSTERED 
(
    [EmployeeCode] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [Data Filegroup 1]
) ON [Data Filegroup 1]
GO

从逻辑应用程序中,我尝试使用“插入行 (V2)”操作插入行,但它不会填充任何表:

如果我在逻辑应用中尝试任何其他 SQL 操作,例如“获取行 (V2)”或“执行存储过程 (V2)”,它们对于相同的连接/数据库服务器/数据库都可以正常工作。所以,我的假设是我正在做正确的事情来创建连接!

从某个论坛我了解到,一个表需要有一个身份列和一个时间戳列,我已经添加了;但是问题仍然存在。

【问题讨论】:

  • 您是否看到任何错误消息?您实际尝试插入 EmployeeCode 和 CostCenter 的部分在哪里?您将两者都定义为NOT NULL,因此除非您为两者都提供值,否则插入将失败。您是否测试过使用相同的连接凭据手动插入值以确保您使用的帐户具有 INSERT 权限?
  • 我同意 - 如果它没有插入行,那么您应该会看到错误,或者您没有在您认为的位置插入。
  • 是的,我使用的帐户对该特定表具有 INSERT 权限;以及它是 db_owner 数据库角色的成员。我的理解是,在我们创建连接并在 Logic App 中的 Insert a row (V2) 操作中定义服务器名称和数据库名称后,它应该填充要从中选择的表名称,然后提供行项目插入。但该表名称未填充任何表。
  • @VictorMcIntyre,我用类似的设置对此进行了测试,我得到了一个包含表名的列表。尝试使用“输入自定义值”并运行您的逻辑应用程序 - 它会成功运行,或者可能会给您一个指向问题的错误。

标签: sql sql-server azure-logic-apps data-gateway


【解决方案1】:

我想我已经弄清楚了。虽然还有一个问题,但是一个单独的问题。

我尝试访问的 SQL 数据库有很多表 - 至少有 100 多个。 我不想给他们所有人写信,只想写几个。因此,我已限制我的 SQL 帐户只能访问那些特定的表,并且它们在我的逻辑应用程序中填充得很好。

现有的问题是,Logic App/APIConnection/On-Prem Data Gateway 对访问表有任何限制吗?

无论如何,主要问题已解决,所以我现在将关闭此问题。感谢您的所有帮助。 :-)

【讨论】:

    猜你喜欢
    • 2019-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-06
    • 1970-01-01
    相关资源
    最近更新 更多