如何解决删除“ OPTIMIZE_FOR_SEQUENTIAL_KEY”是否可以解决我的script.sql失败或涉及更多问题SQL Server Express数据库-> SQL Server?
我正在尝试在托管站点(GoDaddy / Plesk)上将SQL Server Express数据库设置为完整的SQL Server DB,但是遇到了一系列运行script.sql文件的错误消息。
我正在按照步骤here设置数据库,首先是在连接到远程服务器的同时在MSSMS中运行我的script.sql文件。
我一直无法连接,但最终能够按照seanb here的建议通过省去端口号来实现:
...但是我在运行脚本文件时得到了这些错误消息:
这是因为我的数据库是SQL Server Express,并且正在尝试创建SQL Server(标准/常规)数据库,并且“ OPTIMIZE_FOR_SEQUENTIAL_KEY”正在移至“常规” SQL Server / TSQL吗?
如果是这样(或在任何情况下),我该怎么做才能使sql脚本运行?
有关更多详细信息,所有投诉均为“'OPTIMIZE_FOR_SEQUENTIAL_KEY'不是公认的CREATE TABLE选项。”除了一个是
关键字“ with”附近的语法不正确。如果此语句是公用表表达式,xmlnamespaces子句或更改跟踪上下文子句,则前一条语句必须以分号终止。
关于“ OPTIMIZE_FOR_SEQUENTIAL_KEY”问题,这是第一个被抱怨的地方:
)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],
...以及“关键字'with'附近的语法错误”的出现位置:
)WITH (PAD_INDEX = OFF,OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
换句话说,它是完全相同的TSQL,但是应用于不同的列,并导致不同的错误消息-第一个抱怨“ OPTIMIZE”,第二个模糊地抱怨“ WITH”附近
它们在上下文中:
[Id] ASC
)WITH (PAD_INDEX = OFF,CONSTRAINT [CK_ACTORS_Column] UNIQUE NONCLUSTERED
(
[ActorId] ASC
)WITH (PAD_INDEX = OFF,OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
我很想简单地删除所有“ OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF”语句,然后重试;这样安全吗?
解决方法
您的目标SQL Server只是一个较旧的版本。确切地说,它是SQL Server 2014 SP3 CU4,而OPTIMIZE_FOR_SEQUENTIAL_KEY是SQL Server 2019中的一项新功能。即使将SSMS脚本设置为默认值以确保完全保真脚本,有时也会背诵所有选项。
您可以简单地删除该选项,并且脚本应与SQL 2014兼容。实际上,如果未将任何选项设置为非默认值,则可以删除所有这些选项。
或者查看主机托管者是否具有可用的SQL Server 2019。或升级您的托管服务商:)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。