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

Как отключить параметр запретить сохранение изменений в 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 «Сохранение изменений запрещено». Решить ее можно одним из предложенных способов. Лучший способ — это отключение ограничивающего параметра в настройках программы.

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

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

SQL: Saving Changes is not permitted

Те, кто регулярно выполняют создание и развертывание новых баз данных на основе Microsoft SQL Server, активно используют в своей работе такой инструмент, как Microsoft SQL Server Management Studio (SSMS). Он позволяет выполнить практически все операции, что требуются при обслуживании СУБД. В его составе, есть функционал, дизайнера таблиц и диаграмм структуры базы данных, с автоматическим созданием и обновлением таблиц в базе данных, их структуры, индексов и ключей.
При этом, по умолчанию, Microsoft SSMS настроен так, что не позволяет сохранять какие-либо изменения в диаграмме или дизайнере, которые могут повлиять на структуру таблиц, если нельзя внести изменения в структуру таблиц без их пересоздания. Это вполне объяснимо, тк у вас в таблицах могут быть данные, а пересоздание таблицы и уничножит. При это на экране будет появляться сообщение подобное тому что показано ниже: Saving Changes is not permitted (Сохранение изменений не допускается):

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

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

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

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

Стол пуст, и до сих пор я им не пользовался.

задан 24 июля ’11, 20:07

16 ответы

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

SSMS не должен позволять вам делать что-то небезопасное без предварительного предупреждения. Но на всякий случай имейте под рукой резервную копию. — Роберт Харви

Этот параметр сообщает SSMS, что он может продолжить и создать временную таблицу в новой схеме, скопировать в нее данные, затем удалить старую таблицу и переименовать временную таблицу обратно в исходное имя. Все в порядке, как и должно быть в транзакции, однако отношения будут разорваны и воссозданы, так что если не 100%, то может произойти что-то неожиданное. — Джастин Кинг

Не знаю, почему я не могу вспомнить эти простые шаги, чтобы раскрыть эту опцию, и мне всегда нужно искать решение. Хехехехе. Спасибо чувак! — ДмитрийБойко

Святая корова — вы можете просто выключить это, чтобы обойти эту ошибку ?? Я не знал этого, и последние 3 года я жил в страхе, что случайно спроектирую таблицу без спецификации идентичности и мне придется создать новую таблицу. Отличный совет! — Шон Дж. Моллой

Вот ПРЕДОСТЕРЕЖЕНИЕ Microsoft при отключении опции «Предотвратить сохранение изменений . »: support.microsoft.com/en-us/kb/956176. По сути, вы можете потерять метаданные, такие как отслеживание изменений, если это функция, которую вы используете. — Баодад

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

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

ответ дан 23 мая ’16, 20:05

@NeilMeyer, будьте осторожны, не зря там стоит галочка. Это мера безопасности для предотвращения операций, которые могут отбросить и воссоздать таблицу (и, таким образом, потерять все его данные! Так что используйте с осторожностью! — гиперкубᵀᴹ

будут ли отношения между таблицами потеряны, если таблицы будут воссозданы таким образом? — Нил Мейер

@NeilMeyer не уверен, какой именно оператор SSMS выдаст. Вероятно, он также воссоздает любой сброшенный FK. — гиперкубᵀᴹ

Как это глупо, когда вы отключите эту опцию, даже больше не будет никаких предупреждений. — Герфрид

Это не глупо, потому что вы очень мало рискуете потерять что-нибудь важное. ypercube выше неверен, вы не потеряете никаких данных. Он удаляет старую таблицу и создает новую для вас, но гарантирует сохранение всех данных. Единственная проблема может заключаться в том, что если вы отредактировали очень большую таблицу с сотнями миллионов строк таким образом, сохранение ваших изменений может занять час или два — Джефф Грисвальд

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

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

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

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

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

Это не правильно. Когда вы редактируете такую ​​таблицу и в ней есть данные, данные не теряются. Новая таблица будет создана со всеми данными из исходной таблицы внутри нее. — Джефф Грисвальд

Также будут сохранены любые индексы, значения по умолчанию, ограничения, триггеры и т. Д. Согласно документам Microsoft, единственное, что вы потеряете, — это отслеживание изменений, функция, которую очень немногие люди используют или включают. docs.microsoft.com/en-US/troubleshoot/sql/ssms/… — Джефф Грисвальд

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

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

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

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

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

Sql Server 'Saving changes is not permitted' error ► Prevent saving changes that require table re-creation

When I create a table in SQL Server and save it, if I try to edit the table design, like change a column type from int to real, I get this error:

Saving changes is not permitted. The change you have made requires the following table to be dropped and re-created. You have either made changes to a table that can’t be recreated or enabled the option prevent saving changes that require the table to be re-created.

Why do I have to re-create the table? I just want to change a data type from smallint to real .

The table is empty, and I didn’t use it until now.

Brian Tompsett - 汤莱恩's user avatar

15 Answers 15

  • 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 <<<<

If you are using SSMS:

Go to the menu Tools >> Options >> Designers and uncheck Prevent Saving changes that require table re-creation

Mohammad Reza Khedri's user avatar

ypercubeᵀᴹ's user avatar

  1. Tools
  2. Options
  3. Designers
  4. Prevent saving changes that require table re-creation
  5. OK.

Further explanation

By default SQL Server Management Studio prevents the dropping of tables, because when a table is dropped its data contents are lost.*

When altering a column’s datatype in the table Design view, when saving the changes the database drops the table internally and then re-creates a new one.

*Your specific circumstances will not pose a consequence since your table is empty. I provide this explanation entirely to improve your understanding of the procedure.

WonderWorker's user avatar

This can be changed easily in Microsoft SQL Server.

  1. Open Microsoft SQL Server Management Studio 2008
  2. Click Tools menu
  3. Click Options
  4. Select Designers
  5. Uncheck «Prevent saving changes that require table re-creation»
  6. Click OK

enter image description here

Irshad Ahmed Akhonzada's user avatar

To change the Prevent saving changes that require the table re-creation option, follow these steps:

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.

Note: If you disable this option, you are not warned when you save the table that the changes that you made have changed the metadata structure of the table. In this case, data loss may occur when you save the table.

enter image description here

Tabish Usman's user avatar

It is very easy and simple setting problem that can be fixed in 5 seconds by following these steps

To allow you to save changes after you alter table, Please follow these steps for your sql setting:

  1. Open Microsoft SQL Server Management Studio 2008
  2. Click Tools menu options, then click Options
  3. Select Designers
  4. Uncheck «prevent saving changes that require table re-creation» option
  5. Click OK
  6. Try to alter your table
  7. Your changes will performed as desired

Rizwan Gill's user avatar

Go on Tool located at top menu.
Choose options from dropdown.You have a popup now select Designers option located on left hand block of menus. Uncheck the option Prevent saving changes that require table re-creation. Click on OK Button.

Andrew Barber's user avatar

Un-tick the Prevent saving changes that require table re-creation box from Tools ► Options ► Designers tab.

SQL Server 2012 example:

enter image description here

WonderWorker's user avatar

Pedram's user avatar

Copied from this link » . Important We strongly recommend that you do not work around this problem by turning off the Prevent saving changes that require table re-creation option. For more information about the risks of turning off this option, see the «More information» section. »

» . To work around this problem, use Transact-SQL statements to make the changes to the metadata structure of a table. For additional information refer to the following topic in SQL Server Books Online

For example, to change MyDate column of type datetime in at table called MyTable to accept NULL values you can use:

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

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