Запретить сохранение изменений требующих повторного создания таблицы: Сообщение об ошибке «Сохранение изменений не разрешено» — SQL Server

Содержание

Сообщение об ошибке «Сохранение изменений не разрешено» — SQL Server





Twitter




LinkedIn




Facebook




Адрес электронной почты










  • Статья

  • Чтение занимает 3 мин

Эта статья поможет вам решить проблему, при которой при попытке сохранить таблицу в 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. Попробуйте сохранить изменение в таблице.






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

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

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

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

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

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

  •  когда пользователь хочет переопределить параметр «запретить использование Nulls» для табличных колонок;

  •  если пользователь пытается перестроить структуру табличных колонок;

  •  когда пользователь пытается редактировать типаж информации, сохраняемой в колонке;

  •  когда пользователь хочет обозначить новую табличную колонку;

  •  и др.

На самом деле, такое оповещение появляется по одной простой причине — в табличных настройках MS SQL активирован параметр, предотвращающий внесение изменений в структурное оформление таблиц.

Снять это ограничение  в MS SQL «Сохранение изменений запрещено» возможно двумя способами:

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

Команда «ALTER TABLE» — это специальная SQL-команда, которая используется для редактирования структуры SQL-таблиц. При помощи этой команды можно «обойти» ограничивающий параметр и модифицировать таблицу по своему вкусу.

Например, чтобы добавить новую колонку в нашу таблицу, можно воспользоваться таким синтаксисом:

ALTER TABLE<наименование_таблицы>

{ADD<наименование_добавляемой_колонки><тип_данных_колонки> [атрибуты_колонки]}

 Другие инструкции, доступные в «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 «Сохранение изменений запрещено». Опытные пользователи MS SQL уже давно знают об этой функции. Но они также знают, что в некоторых случаях отключение этого параметра может привести к потере информации. Поэтому использовать данное решение нужно с осторожностью.

Заключение

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

Сообщение об ошибке сохранения изменений не разрешено — SQL Server

Редактировать

Твиттер

LinkedIn

Фейсбук

Эл. адрес

  • Статья
  • 4 минуты на чтение

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

Исходная версия продукта:   SQL Server
Исходный номер базы знаний:   956176

Симптомы

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

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

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

  • Изменение параметра Разрешить пустые значения для столбца.
  • Вы переупорядочиваете столбцы в таблице.
  • Вы меняете тип данных столбца.
  • Вы добавляете новый столбец.
  • Вы изменили файловую группу таблицы или ее текст/изображение данных.

Причина

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

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

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

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

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

 alter table MyTable изменить столбец MyDate7 datetime NULL
 

Важно!

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

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

  1. Откройте SQL Server Management Studio.

  2. Об инструментах меню, нажмите Параметры .

  3. В области навигации окна Параметры щелкните Designers .

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

Примечание

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

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

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

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

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

Когда Отслеживание изменений 9Функция 0048 включена, используйте операторы Transact-SQL для изменения структуры метаданных таблицы.

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

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

save — ошибка Sql Server «Сохранение изменений не разрешено» ► Запретить сохранение изменений, требующих повторного создания таблицы

спросил

Изменено
1 год, 6 месяцев назад

Просмотрено
607 тысяч раз

Когда я создаю таблицу в SQL Server и сохраняю ее, если я пытаюсь изменить дизайн таблицы, например изменить тип столбца с int на real, я получаю эту ошибку:

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

Зачем заново создавать таблицу? Я просто хочу изменить тип данных с smallint на real .

Таблица пуста, и я не использовал ее до сих пор.

  • sql-server-2008
  • сохранить
  • ssms
  • пункт меню

1

Из диалогового окна «Сохранить (не разрешено)» в MSDN:

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

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

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

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

См. также
Запись в блоге Colt Kwong:
Сохранение изменений не разрешено в SQL 2008 Management Studio

14

Используете ли вы SSMS?

Если да, перейдите в меню Инструменты >> Параметры >> Дизайнеры и снимите флажок «Запретить сохранение изменений, требующих повторного создания таблицы»

5

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

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

  1. Инструменты
  2. Опции
  3. Дизайнеры
  4. Предотвращение сохранения изменений, требующих повторного создания таблицы
  5. ОК .

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

Дополнительные пояснения

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

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

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

2

Это можно легко изменить в Microsoft SQL Server .

  1. Открыть Microsoft SQL Server Management Studio 2008
  2. Нажмите меню "Инструменты"
  3. Щелкните Опции
  4. Выберите дизайнеров
  5. Снимите флажок «Запретить сохранение изменений, требующих повторного создания таблицы»
  6. Нажмите OK

0

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

Откройте SQL Server Management Studio (SSMS).
В меню Инструменты щелкните Параметры.

В области навигации окна «Параметры» щелкните «Конструкторы».

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

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

1

Это очень простая и простая проблема с настройкой, которую можно устранить за 5 секунд, выполнив следующие действия.

Чтобы сохранить изменения после изменения таблицы, выполните следующие действия для настройки sql: Студия управления SQL Server 2008

  • Щелкните пункты меню «Инструменты», затем щелкните «Параметры».
  • Выберите дизайнеров
  • Снимите флажок «Запретить сохранение изменений, требующих повторного создания таблицы», параметр
  • Нажмите OK
  • Попробуйте изменить таблицу
  • Ваши изменения будут выполнены по желанию
  • 1

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

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

    Пример SQL Server 2012:

    Скопировано из этой ссылки
    " ... Важно! Настоятельно рекомендуем не решать эту проблему, отключив параметр Запретить сохранение изменений, требующих повторного создания таблицы. Дополнительные сведения о рисках, связанных с отключением этого параметра, см. в разделе "Дополнительная информация"

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

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

    изменить таблицу MyTable изменить столбец MyDate7 datetime NULL "

    4

    И на всякий случай тут кто-то тоже не обращает внимания (вроде меня):

    Для Microsoft SQL Server 2012 в диалоговом окне параметров есть небольшой флажок, который ЯВНО скрывает все остальные параметры. Хотя должен сказать, что все это время я скучал по этому маленькому монстру!!!

    После этого вы можете перейти к шагам, дизайнер, снять флажок запретить сохранение бла-бла-бла...

    Инструменты >> Параметры >> Дизайнеры и снять флажок «Запретить сохранение изменений, требующих повторного создания таблицы»:

    1) Откройте инструмент, который находится сверху.
    2) Выберите параметры из списка выбора.
    3) Теперь появляется всплывающее окно, и теперь вы можете выбрать опцию дизайнеров из списка меню с левой стороны.
    4) Теперь необходимо снять флажок предотвращения сохранения изменений, требующий пересоздания таблицы. Теперь нажмите OK.

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

    . Если вы используете студию управления сервером sql, перейдите к
    Инструменты >> Параметры >> Дизайнеры и снимите флажок «Запретить сохранение изменений, требующих повторного создания таблицы».
    у меня работает

    1

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

    Вам необходимо включить отслеживание изменений.

    • Щелкните правой кнопкой мыши базу данных и выберите "Свойства"
    • Щелкните отслеживание изменений и включите его
    • Снова перейдите в Инструменты -> Параметры -> Дизайнер и снимите флажок.