【问题标题】:What is wrong with this SQL statement syntax? Msg 170, Incorrect syntax near '(' [duplicate]这个 SQL 语句语法有什么问题?消息 170,'(' 附近的语法不正确 [重复]
【发布时间】:2013-07-03 17:37:12
【问题描述】:
USE [WORDDB]
GO

/****** Object:  Index [noun_minor]    Script Date: 07/03/2013 13:34:21 ******/
CREATE NONCLUSTERED INDEX [noun_minor] ON [dbo].[2013Words] 
(
        [NOUN_NO] ASC,
        [MIN_NO] ASC
    )WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
    GO

解析查询时出现以下错误,SQL Server 2000:

消息 170,第 15 级,状态 1,第 7 行
第 7 行:'(' 附近的语法不正确。

【问题讨论】:

  • SQL Server 2000 不支持大部分 WITH 选项。
  • 特别是最后三个。 The documentation - 你应该首先检查 - 显示 PAD_INDEX | FILLFACTOR = fillfactor | IGNORE_DUP_KEY | DROP_EXISTING | STATISTICS_NORECOMPUTE | SORT_IN_TEMPDB

标签: sql sql-server


【解决方案1】:

最后一组括号中的“创建表”选项来自 SQL Server 2005+,与 SQ Server 2000 不兼容。去掉整个列表,包括删除括号,它应该可以工作。

像这样:

USE [WORDDB]
GO

/****** Object:  Index [noun_minor]    Script Date: 07/03/2013 13:34:21 ******/
CREATE NONCLUSTERED INDEX [noun_minor] ON [dbo].[2013Words] 
(
    [NOUN_NO] ASC,
    [MIN_NO] ASC
) ON [PRIMARY]
GO

【讨论】:

  • 其实大部分都是兼容的。如果脚本在源代码控制或任何东西中,我会将受支持的保留在其中,以便记录您运行的命令(而不是只接受默认值)。
  • @AaronBertrand 哎呀,抱歉,我无法检查。我不得不做一个后期运行......
猜你喜欢
  • 2018-06-26
  • 2020-06-27
  • 2019-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-27
  • 1970-01-01
相关资源
最近更新 更多