我正在尝试在托管站点 (GoDaddy/Plesk) 上将 SQL Server Express 数据库设置为成熟的 SQL Server DB,但在运行 script.sql 文件时遇到了一系列错误消息。
我正在按照步骤操作here https://www.godaddy.com/help/move-my-microsoft-sql-server-database-to-plesk-19838要设置我的数据库,首先在连接到远程服务器时在 MSSMS 中运行 script.sql 文件。
我一直在连接时遇到问题,但最终能够按照 seanb 的建议省略端口号here https://stackoverflow.com/questions/64492199/how-can-i-upload-my-script-sql-file-and-my-database-file-to-godaddy-via-plesk?noredirect=1#comment114042987_64492199:
...但是我在运行脚本文件时收到这些错误消息:
这是因为我的数据库是 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, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
换句话说,它是完全相同的 TSQL,但应用于不同的列,并导致不同的错误消息 - 第一个抱怨“OPTIMIZE”,第二个只是含糊地抱怨接近“WITH”的东西
它们的上下文如下:
[Id] 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],
CONSTRAINT [CK_ACTORS_Column] UNIQUE NONCLUSTERED
(
[ActorId] 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]
我很想简单地删除所有“OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF”语句,然后再试一次;这样做安全吗?