Не удается изменить дизайн таблицы в SQL Server 2008 - PullRequest
42 голосов
/ 26 марта 2012

Я создал таблицу tbl_Candidate ... но я забыл установить первичный ключ для таблицы и сохранил ее без первичного ключа ...

В следующий раз, когда я собираюсь установить первичный ключ в SQL Server 2008 Express, я получаю сообщение, будто мне нужно отбросить таблицу и создать заново, когда я собираюсь сохранить таблицу с изменениями первичного ключа ...

Это сообщение появляется, когда я пытаюсь сохранить изменения в таблице ... !!

Сохранение изменений не разрешено. Внесенные вами изменения требуют чтобы следующие таблицы отбросить и воссоздать Вы либо сделали изменения в таблице, которые нельзя воссоздать или включить параметр запретить сохранение изменений, которые требуют пересоздания таблиц

Я вошел в SQL Server с аутентификацией Windows, типом сервера в качестве ядра базы данных и именем сервера как .\SQLExpress.

Пожалуйста, дайте мне способ исправить эту проблему или способ изменить настройки SQL Server ... пожалуйста, дайте мне указания .. спасибо ..

Ответы [ 3 ]

88 голосов
/ 26 марта 2012

Ответ находится на сайте MSDN :

Диалоговое окно Сохранить (не разрешено) предупреждает о том, что сохранение изменений не разрешено, поскольку внесенные изменения требуютперечисленные таблицы необходимо удалить и заново создать.

Для следующих действий может потребоваться повторное создание таблицы:

  • Добавление нового столбца в середину таблицы
  • Удаление столбца
  • Изменение обнуляемости столбца
  • Изменение порядка столбцов
  • Изменение типа данных столбца

РЕДАКТИРОВАТЬ 1:

Дополнительные полезные сведения из здесь :

Чтобы изменить изменения Запретить сохранение, требующие повторной-создание, выполните следующие действия:

  1. Откройте SQL Server Management Studio (SSMS).
  2. В меню Сервис выберите Параметры.
  3. На панели навигациив окне «Параметры» нажмите «Дизайнеры».
  4. Выберите или снимите флажок «Предотвратить».сохраните изменения, для которых требуется установить флажок пересоздания таблицы, а затем нажмите кнопку ОК.

Примечание Если вы отключите эту опцию, при сохранении таблицы вы не будете предупреждены о том, что таблицавнесенные вами изменения изменили структуру метаданных таблицы.В этом случае при сохранении таблицы может произойти потеря данных.

Риск отключения опции «Запретить сохранение изменений, требующих пересоздания таблицы»

Хотяотключение этой опции поможет вам избежать повторного создания таблицы, а также может привести к потере изменений.Например, предположим, что вы включили функцию отслеживания изменений в SQL Server 2008, чтобы отслеживать изменения в таблице.При выполнении операции, которая вызывает повторное создание таблицы, вы получаете сообщение об ошибке, упомянутое в разделе «Проблема».Однако если вы отключите эту опцию, существующая информация об отслеживании изменений будет удалена при повторном создании таблицы.Поэтому мы рекомендуем вам не обходить эту проблему, отключив эту опцию.

Settings, screen shot

6 голосов
/ 26 марта 2012

Вы можете напрямую добавить ограничение для таблицы

ALTER TABLE TableName
ADD CONSTRAINT ConstraintName PRIMARY KEY(ColumnName)
GO 

Убедитесь, что в столбце первичного ключа не должно быть нулевых значений.

Опция 2:

вы можетеизмените параметры SQL Management Studio, например

. Чтобы изменить этот параметр, в меню «Сервис» выберите «Параметры», разверните «Конструкторы», а затем нажмите «Конструкторы таблиц и баз данных».Установите или снимите флажок «Запретить сохранение изменений, которые требуют пересоздания таблицы».

2 голосов
/ 06 июня 2017

Запретить сохранение изменений, требующих пересоздания таблицы

Пять быстрых щелчков

Prevent saving changes that require table re-creation in five clicks

  1. Инструменты
  2. Опции
  3. Дизайнеры
  4. Запретить сохранение изменений, которыетребуется пересоздание таблицы
  5. OK .

После сохранения повторите процедуру, чтобы снова поставить галочку.Это защищает от случайной потери данных.

Дальнейшее объяснение

  • По умолчанию SQL Server Management Studio предотвращает сброс таблиц,потому что, когда таблица отбрасывается, ее содержимое теряется. *

  • При изменении типа данных столбца в представлении «Дизайн таблицы» при сохранении изменений база данных внутренне удаляет таблицу, а затем повторносоздает новый.

* Ваши конкретные обстоятельства не будут иметь последствий, поскольку ваша таблица пуста.Я предоставляю это объяснение исключительно для улучшения вашего понимания процедуры.

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