首页 > 解决方案 > 语法错误:OPTIMIZE_FOR_SEQUENTIAL_KEY

问题描述

我正在尝试在 Azure DevOps 构建管道中构建一个在 Visual Studio 中创建的 SQL 数据库项目。但是,当我构建数据库项目时,出现以下错误:

错误 SQL46010:OPTIMIZE_FOR_SEQUENTIAL_KEY 附近的语法不正确

我目前正在从 SSMS 18 中导出脚本,并将它们导入到我的 Visual Studio 项目中。当前的“目标平台”设置为“ Azure SQL 数据库”。

注意:具有 OPTIMIZE_FOR_SEQUENTIAL_KEY 的脚本是我的 CREATE 脚本的一部分,如下所示:

CREATE TABLE [Table1](
    [Id] [bigint] IDENTITY(1,1) NOT NULL,
    [VALUE1] [bigint] NOT NULL
 CONSTRAINT [ID] PRIMARY KEY CLUSTERED 
(

    [Id] ASC
)WITH (STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO

ALTER TABLE [Table1]  WITH CHECK ADD  CONSTRAINT [Table2FK] FOREIGN KEY([Table2FKID])
REFERENCES [Table2])
GO

此外,以下是 SSMS 中显示的兼容性级别:

在此处输入图像描述

我真的很感激任何帮助。谢谢你。

标签: sql-serverdatabasevisual-studioazure-devopsazure-sql-database

解决方案


删除, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF,将解决问题。

出现这个问题的原因是你本地生成的sql脚本是按照最新的sql server 2019生成的,可能devops中使用的sql server版本不一致,导致报错。

我之前在sql server2019上生成的脚本,在sql server2008上运行,出现的错误和你的一样。


推荐阅读