SQL 2005 Management Studio выдает синтаксические ошибки при попытке сохранить изменения в таблице в представлении «Дизайн» - PullRequest
0 голосов
/ 06 августа 2010

Совсем недавно 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 голосов
/ 27 мая 2011

У меня та же проблема с использованием SSMS v10 (SQL 2008) против сервера / базы данных SQL Server 2000. Если я создаю таблицу с несколькими столбцами в конструкторе, а также задаю первичный ключ с помощью конструктора, затем сохраните и попробуйте Таблица сценариев как> Создать в> Новое окно запроса , она генерирует SQL с неверным синтаксисом.

Msg 170, Level 15, State 1, Line 58
Line 58: Incorrect syntax near '('.

Удаление двух опций ALLOW у меня не сработало, но удаление всего предложения WITH решает проблему. Независимо от того, правильно ли это делать, почему SMSS генерирует плохие сценарии?

0 голосов
/ 06 августа 2010

вот мое предложение:

1) перезагрузите компьютер
2) введите SSMS
3) щелкните правой кнопкой мыши по таблице и выберите «обновить»
4) откройте таблицу, щелкните правой кнопкой мыши и выберите «Дизайн», и внесите изменения
5) щелкните значок панели инструментов «Сгенерировать сценарий изменения» (или в меню «Конструктор таблиц», затем «Сгенерировать сценарий изменения»)
6) сохранить копию этого скрипта изменения
7) попытка сохранить таблицу
8) если вы все еще получаете ошибку, отредактируйте ваш вопрос, включив скрипт изменения

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...