Сохранение изменений после редактирования таблицы в SQL Server Management Studio

Если я хочу сохранить изменения в таблице, ранее сохраненные в SQL Server Management Studio (нет данных в таблице), я получаю сообщение об ошибке:

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

Что может помешать легко редактировать таблицу? Или, это обычный способ для SQL Server Management Studio потребовать повторного создания таблицы для редактирования? Что это такое - этот параметр "Запретить сохранение изменений" ?

Ответ 1

Перейдите в Инструменты → Параметры → Дизайнеры- > Снимите флажок "Предотвратить сохранение изменений, требующих повторного создания таблицы". Вуаля.

Это происходит потому, что иногда нужно отбрасывать и воссоздавать таблицу, чтобы что-то изменить. Это может занять некоторое время, поскольку все данные должны быть скопированы в временную таблицу, а затем повторно вставлены в новую таблицу. Поскольку SQL Server по умолчанию не доверяет вам, вам нужно сказать "ОК, я знаю, что я делаю, теперь позвольте мне выполнить мою работу".

Ответ 2

Сервиs > Параметры

enter image description here

Снимите флажок выше опции

Ответ 3

Чтобы обойти эту проблему, используйте инструкции SQL для внесения изменений в структуру метаданных таблицы.

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

Источник: Сообщение об ошибке при попытке сохранить таблицу в SQL Server 2008: "Сохранение изменений не разрешено"

Ответ 4

Вместо того, чтобы снимать флажок (плохое решение), вы должны STOP редактировать данные таким образом. Если данные необходимо изменить, сделайте это с помощью script, чтобы вы могли легко перенести его на производство и так, чтобы он находился под контролем источника. Это также облегчает обновление тестовых изменений после того, как продукция была нажата до разработчика, чтобы разработчики могли работать с более свежими данными.

Ответ 5

Перейдите в SSMS и попробуйте это

Меню → Инструменты → Параметры → Дизайнеры → Снимите флажок "Предотвращение сохранения изменений, требующих повторного создания таблицы".

Вот очень хорошее объяснение по этому поводу: http://blog.sqlauthority.com/2009/05/18/sql-server-fix-management-studio-error-saving-changes-in-not-permitted-the-changes-you-have-made-require-the-following-tables-to-be-dropped-and-re-created-you-have-either-made-changes-to-a-tab/

Ответ 6

Многие изменения, которые вы можете сделать очень легко и визуально в редакторе таблиц в SQL Server Management Studio, фактически требуют, чтобы SSMS удаляла таблицу в фоновом режиме и воссоздавала ее с нуля. Даже простые вещи, такие как переупорядочение столбцов, не могут быть выражены в стандартном заявлении SQL DDL - все, что может сделать SSMS, это сбросить и воссоздать таблицу.

Эта операция может быть a) очень трудоемкой на большой таблице или b) может даже завершиться по различным причинам (например, ограничения FK и прочее). Таким образом, SSMS в SQL Server 2008 представила этот новый вариант, остальные ответы уже определены.

Вначале может показаться интуитивно понятным, чтобы предотвратить такие изменения - и это, безусловно, неприятность на dev-сервере. Но на производственном сервере эта опция и ее значение по умолчанию для предотвращения таких изменений становится потенциальным спасателем!

Ответ 8

Вот это видео показывает, как решить эту проблему

Ссылка на сайт