【发布时间】:2021-02-02 18:01:10
【问题描述】:
我对 MS PowerApps 比较陌生
我在带有 PowerApps 网关的现场服务器上安装了 SQL Server Express
我的 SQL Server 表有一个复合主键,它定义为:
CREATE TABLE [GFX_Information].[BusinessParnterAccess]
(
[BpAccesID] [int] IDENTITY(1,1) NOT NULL,
[CreatedDate] [datetime] NOT NULL,
[UpdatedDate] [datetime] NOT NULL,
[LastOperatorID] [int] NOT NULL,
[CreateByID] [int] NOT NULL,
[BPID] [int] NOT NULL,
[AllowedOperatorID] [int] NOT NULL,
[AccessFlag] [varchar](10) NULL,
PRIMARY KEY CLUSTERED ([AllowedOperatorID] ASC, [BPID] ASC)
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF,
IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON,
ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
ALTER TABLE [GFX_Information].[BusinessParnterAccess]
ADD DEFAULT (GETDATE()) FOR [CreatedDate]
GO
ALTER TABLE [GFX_Information].[BusinessParnterAccess]
ADD DEFAULT (GETDATE()) FOR [UpdatedDate]
GO
我正在研究如何“修补”新记录。
目前,我使用OnVisible 事件创建一个变量来保存最后一个BpAccesID,就像这样
UpdateContext ({varLastAccessID:First(SortByColumns('[GFX_Information].[BusinessParnterAccess]',"BpAccesID",Descending)).BpAccesID});
出于测试目的,我正在为补丁命令使用一组手动值。 Patch 命令是
Patch('[GFX_Information].[BusinessParnterAccess]',Defaults('[GFX_Information].[BusinessParnterAccess]')
,{BpAccesID:varLastAccessID+1
,CreatedDate: Now()
,UpdatedDate:Now()
,LastOperatorID:4
,CreateByID:4
,BPID:342
,AllowedOperatorID:4
,AccessFlag:"RW" });
但是,这不会引发我无法检测到的错误,也不会引发我丢失的内容
谁能给点意见?
【问题讨论】:
-
我不知道“PowerApps”是什么,但由于
BpAccesID列定义为IDENTITY,因此您不应为新行提供值。服务器会自动为其分配一个新值。我会尝试从您的代码中删除此文本:BpAccesID:varLastAccessID+1 ,。
标签: sql-server powerapps composite-primary-key powerapps-canvas