I’m trying to make changes to an existing table and am getting this error when i try to save :
Saving changes is not permitted. The changes you have made require the following tables to be dropped and re-created. You have either made changes to a table that can’t be re-created or enabled the option Prevent saving changes that require the table to be re-created.
I only have one data entry in the database — would deleting this solve the problem or do i have to re-create the tables as the error suggests? (This is on SQL-Server 2008 R2)
ashes999
9,85715 gold badges72 silver badges120 bronze badges
asked Jan 7, 2014 at 4:08
1
The following actions might require a table to be re-created:
- Adding a new column to the middle of the table
- Dropping a column
- Changing column nullability
- Changing the order of the columns
- Changing the data type of a column
To change this option, on the Tools menu, click Options, expand Designers, and then click Table and Database Designers. Select or clear the Prevent saving changes that require the table to be re-created check box.
refer
answered Jan 7, 2014 at 4:17
Nagaraj SNagaraj S
13.2k6 gold badges32 silver badges52 bronze badges
0
you need to change settings to save the changes
- Open SQL Server Management Studio (SSMS).
- On the Tools menu, click Options.
- In the navigation pane of the Options window, click Designers.
- Select or clear the Prevent saving changes that require the table re-creation check box, and then click OK.

answered Nov 14, 2014 at 16:30
Ali AdraviAli Adravi
21k9 gold badges83 silver badges83 bronze badges
0
Goto -> Tools -> Options->Designers-> Warn on null primary keys and
Warn about tables affected
uncheck and try again
answered Jan 7, 2014 at 4:25
senthilkumar2185senthilkumar2185
2,5063 gold badges23 silver badges35 bronze badges
I’m trying to make changes to an existing table and am getting this error when i try to save :
Saving changes is not permitted. The changes you have made require the following tables to be dropped and re-created. You have either made changes to a table that can’t be re-created or enabled the option Prevent saving changes that require the table to be re-created.
I only have one data entry in the database — would deleting this solve the problem or do i have to re-create the tables as the error suggests? (This is on SQL-Server 2008 R2)
ashes999
9,85715 gold badges72 silver badges120 bronze badges
asked Jan 7, 2014 at 4:08
1
The following actions might require a table to be re-created:
- Adding a new column to the middle of the table
- Dropping a column
- Changing column nullability
- Changing the order of the columns
- Changing the data type of a column
To change this option, on the Tools menu, click Options, expand Designers, and then click Table and Database Designers. Select or clear the Prevent saving changes that require the table to be re-created check box.
refer
answered Jan 7, 2014 at 4:17
Nagaraj SNagaraj S
13.2k6 gold badges32 silver badges52 bronze badges
0
you need to change settings to save the changes
- Open SQL Server Management Studio (SSMS).
- On the Tools menu, click Options.
- In the navigation pane of the Options window, click Designers.
- Select or clear the Prevent saving changes that require the table re-creation check box, and then click OK.

answered Nov 14, 2014 at 16:30
Ali AdraviAli Adravi
21k9 gold badges83 silver badges83 bronze badges
0
Goto -> Tools -> Options->Designers-> Warn on null primary keys and
Warn about tables affected
uncheck and try again
answered Jan 7, 2014 at 4:25
senthilkumar2185senthilkumar2185
2,5063 gold badges23 silver badges35 bronze badges
Всем привет! Сегодня я расскажу об ошибке «Сохранение изменений запрещено», которая возникает в среде SQL Server Management Studio при работе с конструктором таблиц, будут рассмотрены причины ее возникновения и, конечно же, способы исправления данной ошибки.

Заметка! Обзор функционала SQL Server Management Studio (SSMS).
Содержание
- Ошибка «Сохранение изменений запрещено»
- Причины возникновения ошибки «Сохранение изменений запрещено»
- Способы устранения ошибки «Сохранение изменений запрещено»
- Использовать T-SQL
- Отключить параметр «Запретить сохранение изменений, требующих повторного создания таблицы»
Ошибка «Сохранение изменений запрещено»
Итак, ситуация: Вы вносите изменения в таблицу с помощью конструктора в среде SQL Server Management Studio, однако при попытке сохранить изменения Вы получаете следующую ошибку
Сохранение изменений запрещено. Чтобы сохранить изменения, необходимо удалить и повторно создать следующие таблицы. Либо изменения вносятся в таблицу, которую невозможно создать повторно, либо включен параметр «Запретить сохранение изменений, требующих повторного создания таблицы».

Причины возникновения ошибки «Сохранение изменений запрещено»
Дело в том, что при изменении таблицы с помощью конструктора с изменением структуры ее метаданных, чтобы сохранить все изменения, необходимо пересоздать таблицу на основе этих изменений, т.е. создать ее заново. Вы этого не видите, но это будет делать сама среда Management Studio.
Однако это действие может привести к потере метаданных и прямой потере данных во время повторного создания таблицы.
Поэтому по умолчанию в среде SQL Server Management Studio включен параметр «Запретить сохранение изменений, требующих повторного создания таблицы». И если Вы используете графический конструктор таблиц, чтобы внести изменения в таблицу, например, Вы выполняете следующие действия:
- Меняете параметр «Разрешить значения NULL» для столбца;
- Изменяете порядок столбцов в таблице;
- Изменяете тип данных столбца;
- Добавляете новый столбец.
то в этих случаях Вы будете получать именно такую ошибку.
Способы устранения ошибки «Сохранение изменений запрещено»
Вы можете спросить, «а как же тогда вносить изменения в таблицы, если существует прямой запрет на внесения изменений?».
Конечно же, существуют способы устранения данной ошибки и внесение изменений в таблицы. В частности, Вы можете использовать два.
Использовать T-SQL
Первый, и рекомендованный – это использовать инструкции T-SQL.
Заметка! Что такое T-SQL. Подробное описание для начинающих.
В качестве примера давайте представим, что у нас есть таблица Goods, и она имеет следующие данные.
CREATE TABLE Goods( ProductId INT IDENTITY(1,1) NOT NULL, Category INT NOT NULL, ProductName VARCHAR(100) NOT NULL, Price MONEY NULL ); INSERT INTO Goods (Category, ProductName, Price) VALUES (1, 'Системный блок', 50), (1, 'Клавиатура', 30), (1, 'Монитор', 100), (2, 'Планшет', 150), (2, 'Смартфон', 100); SELECT * FROM Goods;

Заметка! Если Вас интересует язык SQL, то рекомендую почитать книгу «SQL код» – это самоучитель по языку SQL для начинающих программистов. В ней очень подробно рассмотрены основные конструкции языка.
Изменяем параметр «Разрешить значения NULL»
Как видим, столбец Price на текущий момент у нас может принимать значения NULL, однако мы решили сделать этот столбец обязательным к заполнению и запретить хранение в нем значений NULL.
Если мы будем использовать конструктор таблиц, то мы получим ошибку «Сохранение изменений запрещено».
Чтобы запретить хранение NULL значений, мы можем выполнить следующую инструкцию SQL
ALTER TABLE Goods ALTER COLUMN Price MONEY NOT NULL;
Однако помните о том, что в столбце на момент выполнения инструкции уже не должно быть значений NULL, Вы их должны устранить.
Изменяем тип данных столбца
Если необходимо изменить тип данных столбца, то нужно написать практически точно такую же инструкцию, только при этом указав новый тип данных.
ALTER TABLE Goods ALTER COLUMN Price NUMERIC(18,2) NOT NULL;
В данном случае мы изменили тип данных столбца Price с MONEY на NUMERIC.
Добавляем новый столбец
Если требуется добавить новый столбец, то Вы можете использовать следующую инструкцию.
ALTER TABLE Goods ADD ProductDescription VARCHAR(300) NULL;
В этом примере мы добавили столбец ProductDescription с типом данных VARCHAR.
К сожалению, изменение порядка столбцов в таблице на языке T-SQL не поддерживается, это возможно только путем пересоздания таблицы.
Заметка! Транзакции в T-SQL – основы для новичков с примерами.
Отключить параметр «Запретить сохранение изменений, требующих повторного создания таблицы»
Если Вы не хотите вникать в SQL, то Вы можете просто отключить параметр «Запретить сохранение изменений, требующих повторного создания таблицы» и в таком случае Вы сможете вносить в таблицы все перечисленные выше изменения, которые ранее были недоступны, включая изменение порядка столбцов.
Однако Microsoft не рекомендует отключать этот параметр, ссылаясь на то, что при определенных обстоятельствах сохранение изменений, требующих повторного создания таблицы, может привести к потере метаданных и прямой потере данных. Например, если у таблицы включен функционал «Отслеживания изменений».
В большинстве случаев потери данных, конечно же, не будет происходить, поэтому данный параметр отключить можно, но лучше использовать SQL.
Чтобы отключить данный параметр, зайдите в SSMS в меню «Сервис -> Параметры» и на вкладке «Конструкторы» снимите галочку «Запретить сохранение изменений, требующих повторного создания таблицы» и нажмите «ОК».

После этого Вы сможете сохранять любые изменения в таблицах с помощью графического конструктора.
Заметка! Курсы по Transact-SQL для начинающих.
На сегодня это все, надеюсь, материал был Вам полезен, пока!
Многие, кто работал в программе Microsoft SQL Server Management Studio, сталкивался с такой ситуацией, когда при сохранении изменений в структуре таблицы возникала ошибка.

И что бы мы не делали, как бы мы не пытались сохранить изменения — программа нам не дает этого сделать. Можно удалить данную таблицу и создать такую же структуру заново. А если спустя несколько минут нам нужно внести еще изменения в структуру? Удалять и создавать структуру не вариант. Оказывается в программе есть параметр, отвечающий за сохранение изменений в структуре таблицы.
Для этого нам необходимо выбрать пункт меню Сервис -> Параметры.

В открывшемся окне Параметры в иерархическом меню найти пункт Конструкторы и раскрыть его. Затем выбрать пункт Конструкторы таблиц и баз данных. И как на рисунке выше снять галочку у параметра Запретить сохранение изменений, требующих повторного создания таблицы. После нажать на кнопку ОК.
Теперь вы сможете легко изменять и сохранять изменения в ваших таблицах.
Опытные разработчики о данной функции уже знают, а для новичков, возможно, сэкономит немного времени. Спасибо за внимание и до новых встреч!
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Я пытаюсь внести изменения в существующую таблицу и получаю эту ошибку при попытке сохранить:
Сохранение изменений не допускается. Изменения, которые вы внесли, требуют, чтобы следующие таблицы были удалены и повторно созданы. Вы внесли изменения в таблицу, которую невозможно воссоздать или включить параметр Запретить сохранение изменений, требующих воссоздания таблицы.
У меня есть только одна запись данных в базе данных — удалил бы это, разрешив проблему, или мне придется воссоздать таблицы, как подсказывает ошибка? (Это на SQL-Server 2008 R2)
Следующие действия могут потребовать воссоздания таблицы:
- Добавление нового столбца в середину таблицы
Удаление столбца
Изменение нулевой точности столбца
Изменение порядка столбцов
Изменение типа данных столбца
Чтобы изменить этот параметр, в меню «Сервис» выберите «Параметры», «Развернуть конструкторы», а затем «Дизайнеры таблиц и баз данных». Выберите или снимите флажок «Предотвратить сохранение», для которого требуется, чтобы таблица была заново создана.
обратитесь
вам нужно изменить настройки, чтобы сохранить изменения
- Откройте SQL Server Management Studio (SSMS).
В меню «Сервис» выберите «Параметры».
В навигационной панели окна «Параметры» щелкните «Дизайнеры».
Выберите или снимите флажок «Предотвратить сохранение изменений, требующих переопределение таблицы», и нажмите «ОК».

Goto -> Tools -> Options->Designers-> Warn on null primary keys and
Warn about tables affected
снимите флажок и повторите попытку
Введите минимум 50 символов
В процессе взаимодействия с программным обеспечением компании Майкрософт «SQL Server Management Studio», а конкретно при желании определить какие-либо корректировки в табличном структурировании, бывают случаи, когда выскакивает предупреждающее диалоговое окно с оповещением, что сохранение изменений в SQL запрещено. Полное полученное уведомление выглядит так:
«Сохранение изменений запрещено. Чтобы сохранить изменения, необходимо удалить и повторно воссоздать текущие таблицы. Либо изменения вносятся в таблицу, которую невозможно воссоздать повторно, либо активирован параметр «Запретить сохранение изменений, требующих повторного создания таблицы».
Когда появляется похожее сообщение в MS SQL, тогда программное обеспечение не даст вам возможность внести и сохранить какие-то изменения. Как видно, сообщение довольно внушительное. Поэтому не все его внимательно читают до конца. Обычно на слове «удалить» внимательность пользователей притупляется. Естественно, удалить имеющуюся таблицу и структуру можно, а потом воссоздать ее заново. Но представьте, что вы удалили и воссоздали новую таблицу, а через какое-то время опять ее структурное представление нужно немного отредактировать. В такой ситуации опять выскочит предупреждающее сообщение. Это ограничение можно исключить довольно простыми способами.
Снимаем ограничение в MS SQL «Сохранение изменений запрещено»
Важно отметить, что такое ограничение активируется, когда пользователь решает внести корректировки в табличную структуру, а не просто внести какую-то информацию в уже созданные табличные ячейки. Уведомление «Сохранение изменений запрещено» в MS SQL появляется в следующих случаях:
когда пользователь хочет переопределить параметр «запретить использование Nulls» для табличных колонок;
если пользователь пытается перестроить структуру табличных колонок;
когда пользователь пытается редактировать типаж информации, сохраняемой в колонке;
когда пользователь хочет обозначить новую табличную колонку;
и др.
На самом деле, такое оповещение появляется по одной простой причине — в табличных настройках MS SQL активирован параметр, предотвращающий внесение изменений в структурное оформление таблиц.
Снять это ограничение в MS SQL «Сохранение изменений запрещено» возможно двумя способами:
применить команду «ALTER TABLE»;
отключить параметр, предотвращающий внесение изменений в табличное структурирование.
Снимаем ограничение 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 «Сохранение изменений запрещено», отключая ограничивающий параметр
Разрешить редактирование табличной структуры можно, если деактивировать ограничивающий параметр. Чтобы его деактивировать, следуйте алгоритму:
Запустите программное обеспечение Майкрософт SQL Server Management Studio.
В основном меню программы найдите подпункт «Сервис».
В этом подпункте найдите раздел «Параметры».
В этом разделе настроек отыщите подпункт «Конструкторы».
В этом подпункте настроек отыщите раздел «Конструкторы таблиц и баз данных».
В этом разделе уберите «галочку» с пункта «Запретить сохранение изменений, требующих повторного создания таблицы».
После этого вам осталось только сохранить настройки, нажав кнопку «Ок».
Деактивация данного параметра исключает появление уведомления в MS SQL «Сохранение изменений запрещено». Опытные пользователи MS SQL уже давно знают об этой функции. Но они также знают, что в некоторых случаях отключение этого параметра может привести к потере информации. Поэтому использовать данное решение нужно с осторожностью.
Заключение
Сегодня мы рассказали, как решается проблема MS SQL «Сохранение изменений запрещено». Решить ее можно одним из предложенных способов. Лучший способ — это отключение ограничивающего параметра в настройках программы.