就在最近,SQL 2005 Management Studio在尝试保存对表的更改时开始抛出语法错误。这些是在“设计”视图中创建的表,而不是TSQL脚本。
'Build_Group' table
- Unable to create index 'PK_Build_Group'.
Incorrect syntax near ','.
基于错误,主键上的聚集索引的重新创建似乎失败了,但这是SQL完全自动化的过程,它自己在幕后生成的TSQL,并且对表的更改不是到关键字段,即之前生成的聚集索引现在失败了。
这个SQL安装已经有一年多了,我每天都在使用它,没有问题。没有什么改变到我所知道的环境。
之前有人见过这个吗?
==编辑为原创==============================
以下是生成的更改脚本
BEGIN TRANSACTION
SET QUOTED_IDENTIFIER ON
SET ARITHABORT ON
SET NUMERIC_ROUNDABORT OFF
SET CONCAT_NULL_YIELDS_NULL ON
SET ANSI_NULLS ON
SET ANSI_PADDING ON
SET ANSI_WARNINGS ON
COMMIT
BEGIN TRANSACTION
GO
ALTER TABLE dbo.Build_Group ADD CONSTRAINT
PK_Build_Group PRIMARY KEY CLUSTERED
(
build_group_pk
) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO
COMMIT
WITH行发生语法错误。如果我退出两个ALLOW选项,它将运行。
答案 0 :(得分:0)
这是我的建议:
1)重启你的电脑
2)输入SSMS
3)右键单击表格并选择“刷新”
4)打开表格,右键单击并选择“设计”,然后进行更改
5)单击“生成更改脚本”工具栏图标(或从菜单 - “表设计器”然后“生成更改脚本”)
6)存储此更改脚本的副本
7)试图保存表格
8)如果仍然出现错误,请编辑您的问题以包含更改脚本
答案 1 :(得分:0)
对于SQL Server 2000服务器/数据库使用SSMS v10(SQL 2008)时遇到同样的问题。如果我在设计器中创建一个包含几列的表,并使用设计器设置主键,则保存并尝试脚本表作为>创建至>新的查询窗口它使用不正确的语法生成SQL。
Msg 170, Level 15, State 1, Line 58
Line 58: Incorrect syntax near '('.
删除两个ALLOW选项对我不起作用,但删除整个WITH子句确实解决了这个问题。无论这是否正确,为什么SMSS会生成错误的脚本?