You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure SQL创建带约束自增ID引发Power Apps问题,SQL报WITH语法错误

解决SQL创建表语法错误及Power Apps自增ID问题

一、SQL语法错误:"Incorrect syntax near 'WITH'"

你的SQL语句里有一个细微的语法问题——在主键聚集索引的闭合括号和WITH关键字之间缺少空格,SQL Server的解析器无法正确识别这个语法分隔,所以抛出了错误。

修正后的完整SQL语句:

CREATE TABLE [dbo].[Stopwords](
    [Id] [int] IDENTITY(1,1) NOT NULL,
    [Stopword] [nvarchar](150) NULL,
    [Timestamp] [nvarchar](17) NULL,
    [Created by] [nvarchar](150) NULL,
    CONSTRAINT [PK_StopwordsId] PRIMARY KEY CLUSTERED 
    (
        [Id] ASC
    ) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 90) ON [PRIMARY]
)

另外如果你的数据库兼容性级别过低(比如低于SQL Server 2005的90级别),也可能导致这些索引选项不被支持,可以通过以下命令检查并调整:

-- 检查当前数据库兼容性级别
SELECT name, compatibility_level FROM sys.databases WHERE name = '你的数据库名';
-- 升级到对应SQL Server版本的兼容级别(示例为SQL Server 2019的150)
ALTER DATABASE 你的数据库名 SET COMPATIBILITY_LEVEL = 150;

二、Power Apps中自增ID约束的问题

Power Apps对接SQL Server自增列时,常见问题是应用试图给自增的Id列赋值,或者无法正确识别自增属性,以下是针对性解决步骤:

  • 设置列的编辑权限:在Power Apps的表单控件中,找到Id对应的输入控件,将其DisplayMode设置为DisplayMode.View,确保用户无法编辑该字段;同时在表单的Update属性中,不要包含Id字段的赋值逻辑。
  • 使用Patch函数时避免赋值:如果用Patch函数提交数据,不要在字段列表里包含Id,让SQL Server自动生成,示例:
    Patch(Stopwords, Defaults(Stopwords), {Stopword: "示例关键词", Timestamp: Text(Now(), "yyyyMMddHHmmssfff"), 'Created by': User().FullName})
    
  • 刷新数据源:在Power Apps的数据源面板中,找到Stopwords表,点击刷新按钮,确保应用识别到最新的表结构(包括自增属性)。
  • 检查连接权限:确保Power Apps连接SQL Server使用的账户拥有INSERT权限,并且能读取表的元数据(这样应用才能自动识别出自增列)。

内容的提问来源于stack exchange,提问作者DasGerberBaby

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 08:32:06