Ric*_*ner 10 index sql-server clustered-index ddl sql-server-2012
运行以下脚本时出现错误;
IF NOT EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE='BASE TABLE' AND TABLE_NAME='Table_Name')
BEGIN
CREATE TABLE Table_Name
(
Field_Name_1 binary(32) NOT NULL CONSTRAINT PK_Name_Goes_Here PRIMARY KEY NONCLUSTERED
, Field_Name_2 int NOT NULL
, Field_Name_3 datetime NOT NULL INDEX IX_Name_Goes_Here CLUSTERED
)
END
Run Code Online (Sandbox Code Playgroud)
特别是它的聚集索引创建抛出以下错误:
消息 1018,级别 15,状态 1,第 15 行
“INDEX”附近的语法不正确。如果这是作为表提示的一部分,现在需要 WITH 关键字和括号。有关正确的语法,请参阅 SQL Server 联机丛书。
这很奇怪,因为它适用于我们所有的服务器,除了特定的 QA 服务器。我们采取的修复措施是在表创建语句之外创建聚集索引,但如果有人以前遇到过这个问题,我会感兴趣吗?
Aar*_*and 12
内联指数声明的语法在SQL Server 2014中添加,虽然这就是 是在完全不清楚官方CREATE TABLE文档。在与文档所有者交谈后,该主题现在准确地反映了内联索引语法仅从 SQL Server 2014(以及 2016 年的一些变体)开始有效:
此语法适用于您的其他实例必须在 SQL Server 2014 或更高版本上。
在 2012 年,无论兼容性级别如何,您都需要单独创建索引。
| 归档时间: |
|
| 查看次数: |
2294 次 |
| 最近记录: |