SQL 2005 Management Studio在尝试将更改保存到“设计”视图中的表时抛出语法错误

时间:2010-08-06 13:20:28

标签: sql-server-2005 ssms

就在最近,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选项,它将运行。

2 个答案:

答案 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会生成错误的脚本?