【发布时间】: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