Перейти к содержимому

Как отключить параметр запретить сохранение изменений в sql

  • автор:

Диалоговое окно Ms SQL: сохранение изменений запрещено. Что делать

Lorem ipsum dolor

В процессе взаимодействия с программным обеспечением компании Майкрософт «SQL Server Management Studio», а конкретно при желании определить какие-либо корректировки в табличном структурировании, бывают случаи, когда выскакивает предупреждающее диалоговое окно с оповещением, что сохранение изменений в SQL запрещено. Полное полученное уведомление выглядит так:

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

Когда появляется похожее сообщение в MS SQL, тогда программное обеспечение не даст вам возможность внести и сохранить какие-то изменения. Как видно, сообщение довольно внушительное. Поэтому не все его внимательно читают до конца. Обычно на слове «удалить» внимательность пользователей притупляется. Естественно, удалить имеющуюся таблицу и структуру можно, а потом воссоздать ее заново. Но представьте, что вы удалили и воссоздали новую таблицу, а через какое-то время опять ее структурное представление нужно немного отредактировать. В такой ситуации опять выскочит предупреждающее сообщение. Это ограничение можно исключить довольно простыми способами.

Снимаем ограничение в MS SQL «Сохранение изменений запрещено»

  • когда пользователь хочет переопределить параметр «запретить использование Nulls» для табличных колонок;
  • если пользователь пытается перестроить структуру табличных колонок;
  • когда пользователь пытается редактировать типаж информации, сохраняемой в колонке;
  • когда пользователь хочет обозначить новую табличную колонку;
  • и др.
  • применить команду «ALTER TABLE»;
  • отключить параметр, предотвращающий внесение изменений в табличное структурирование.

Снимаем ограничение MS SQL «Сохранение изменений запрещено» при помощи «ALTER TABLE»

  • «DROP COLUMN» — используется для удаления любой колонки таблицы;
  • «ALTER COLUMN» — используется для изменения типа данных, сохраняемого в определенной колонке;
  • «ADD CHEK» — применяется, когда нужно добавить какое-то ограничение к информации в колонке таблицы;
  • «ADD FOREIGN KEY» — используется, когда колонке нужно добавить внешний ключ;
  • «ADD PRIMARY KEY» — применяется, когда колонке нужно добавить первичный ключ;
  • и др.

Решаем проблему MS SQL «Сохранение изменений запрещено», отключая ограничивающий параметр

  1. Запустите программное обеспечение Майкрософт SQL Server Management Studio.
  2. В основном меню программы найдите подпункт «Сервис».
  3. В этом подпункте найдите раздел «Параметры».
  4. В этом разделе настроек отыщите подпункт «Конструкторы».
  5. В этом подпункте настроек отыщите раздел «Конструкторы таблиц и баз данных».
  6. В этом разделе уберите «галочку» с пункта «Запретить сохранение изменений, требующих повторного создания таблицы».
  7. После этого вам осталось только сохранить настройки, нажав кнопку «Ок».

Заключение

Сегодня мы рассказали, как решается проблема MS SQL «Сохранение изменений запрещено». Решить ее можно одним из предложенных способов. Лучший способ — это отключение ограничивающего параметра в настройках программы.

Мы будем очень благодарны

если под понравившемся материалом Вы нажмёте одну из кнопок социальных сетей и поделитесь с друзьями.

Диалоговое окно «Сохранение (запрещено)»

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

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

  • добавление нового столбца в середину таблицы;
  • удаление столбца;
  • изменение допустимости значения NULL для столбца;
  • изменение порядка столбцов;
  • изменение типа данных столбца.

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

Ошибка при сохранении диаграммы бд

Создал бд, таблицы. Построил диаграмму, не дает сохранить. Пересоздавать не хочу лишний раз. Помогите великие хранители SQL ssms 18, express 19 введите сюда описание изображения введите сюда описание изображения введите сюда описание изображения

Отслеживать
задан 3 дек 2021 в 17:19
user417212 user417212
Какая у вас версия SSMS? Во многих старых версиях SSMS было много ошибок с диаграммами.
3 дек 2021 в 17:48
ssms 18, а express 19
– user417212
3 дек 2021 в 18:40
Именно по этой причине. Попробуйте SSMS 18.10
3 дек 2021 в 18:56

Какая у вас версия SSMS? Во многих старых версиях SSMS было много ошибок с диаграммами. Именно по этой причине не дает сохранить. Попробуйте SSMS 18.10 ![введите сюда описание изображения](i.stack.imgur.com/23vw8.jpg)

3 дек 2021 в 19:01

сходите в Tools -> Options -> Designers и снимите галку с Prevent saving changes that require table re-creation

4 дек 2021 в 11:22

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

Ответ на вашу проблему можно найти просто прочитав сообщение об ошибке. Предлагается проследовать в настройки по пути Tools -> Options -> Designers и выставить галку «Prevent saving changes thath require table re-creation» или в вашем случае «запретить сохранение изменений требующих повторного создания таблицы»

введите сюда описание изображения

Отслеживать
ответ дан 4 дек 2021 в 11:28
29.2k 1 1 золотой знак 21 21 серебряный знак 43 43 бронзовых знака
спасибо за ответ
– user417212
5 дек 2021 в 20:53

    Важное на Мете
Похожие

Подписаться на ленту

Лента вопроса

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.1.3.2953

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

Сообщение об ошибке «Сохранение изменений не разрешено» в SSMS

Эта статья поможет вам решить проблему, при которой при попытке сохранить таблицу в SQL Server Management Studio (SSMS) отображается сообщение об ошибке.

Оригинальная версия продукта: SQL Server
Оригинальный номер базы знаний: 956176

Симптомы

При попытке сохранить таблицу после внесения изменений в таблицу с помощью конструктора в SQL Server Management Studio может появиться следующее сообщение об ошибке:

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

Эта проблема возникает при внесении одного или нескольких из следующих изменений в таблицу:

  • Вы изменяете параметр «Разрешить значения NULL» для столбца.
  • Вы изменяете порядок столбцов в таблице.
  • Вы изменяете тип данных столбца.
  • Вы добавляете новый столбец.
  • Вы изменяете filegroup таблицы или ее text/image данные.

Причина

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

Когда вы изменяете таблицу таким образом, что изменяете структуру метаданных таблицы, а затем сохраняете таблицу, таблица должна быть создана повторно на основе этих изменений. Это может привести к потере метаданных и прямой потере данных во время повторного создания таблицы. Если включить параметр Запретить сохранение изменений, требующих повторного создания таблицы в разделе Конструктор окна Параметры Server Management Studio (SSMS) отобразится сообщение об ошибке, упомянутое в разделе «Симптомы».

Обходной путь

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

Например, чтобы изменить столбец MyDate типа datetime в таблице MyTable для принятия значений NULL, можно использовать:

alter table MyTable alter column MyDate7 datetime NULL 

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

Дополнительная информация

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

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

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

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

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

Чтобы определить, включена ли функция «Отслеживание изменений» для таблицы, выполните следующие действия:

  1. В SQL Server Management Studio найдите таблицу в обозревателе объектов.
  2. Щелкните таблицу правой кнопкой мыши и выберите пункт «Свойства».
  3. В диалоговом окне «Свойства таблицы» выберите «Отслеживание изменений». Если для элемента «Отслеживание изменений» задано значение True, этот параметр включен для таблицы. Если значение — False, этот параметр отключен.

Если функция Change Tracking включена, используйте операторы Transact-SQL, чтобы изменить структуру метаданных таблицы.

Действия по воспроизведению проблемы

  1. В SQL Server Management Studio создайте таблицу, содержащую первичный ключ в конструкторе таблиц.
  2. Щелкните правой кнопкой мыши базу данных,содержащую эту таблицу, и выберите пункт Свойства.
  3. В диалоговом окне Свойства базы данных нажмите Отслеживание изменений.
  4. Задайте для элемента Отслеживание изменений значение True и нажмите кнопку ОК.
  5. Щелкните таблицу правой кнопкой мыши и выберите пункт Свойства.
  6. В диалоговом окне Свойства таблицы нажмите Отслеживание изменений.
  7. Задайте для элемента Отслеживание изменений значение True и нажмите кнопку ОК.
  8. В меню Сервис щелкните пункт Параметры.
  9. В диалоговом окне Параметры выберите Конструкторы.
  10. Установите флажок Запретить сохранение изменений, требующих повторного создания таблицы и нажмите кнопку ОК.
  11. В конструкторе таблиц измените параметр Разрешить значения NULL для существующего столбца.
  12. Попробуйте сохранить изменение в таблице.

Обратная связь

Были ли сведения на этой странице полезными?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *