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

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

  • автор:

Убираем запрет сохранения изменений в структуре таблицы MSSQL

Microsoft SQL Server Management Studio 2016

Многие, кто работал в программе Microsoft SQL Server Management Studio, сталкивался с такой ситуацией, когда при сохранении изменений в структуре таблицы возникала ошибка.

Microsoft SQL Server Management Studio. Ошибка

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

Для этого нам необходимо выбрать пункт меню Сервис -> Параметры.

Microsoft SQL Server Management Studio. Параметры

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

Теперь вы сможете легко изменять и сохранять изменения в ваших таблицах.

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

If you have found a spelling error, please, notify us by selecting that text and tap on selected text.

  • ← Лабораторная работа по VBA. Ввод-вывод информации с использованием файлов
  • Убираем ошибку при сопоставлении ScriptResourceMapping для Jquery →

Ошибка «Сохранение изменений запрещено» в среде SSMS. Причины и способы устранения

Всем привет! Сегодня я расскажу об ошибке «Сохранение изменений запрещено», которая возникает в среде SQL Server Management Studio при работе с конструктором таблиц, будут рассмотрены причины ее возникновения и, конечно же, способы исправления данной ошибки.

Ошибка «Сохранение изменений запрещено» в среде SSMS. Причины и способы устранения

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

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

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

Скриншот 1

Причины возникновения ошибки «Сохранение изменений запрещено»

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

Однако это действие может привести к потере метаданных и прямой потере данных во время повторного создания таблицы.

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

  • Меняете параметр «Разрешить значения NULL» для столбца;
  • Изменяете порядок столбцов в таблице;
  • Изменяете тип данных столбца;
  • Добавляете новый столбец.

то в этих случаях Вы будете получать именно такую ошибку.

Способы устранения ошибки «Сохранение изменений запрещено»

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

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

Использовать 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;

Скриншот 2

Заметка! Если Вас интересует язык 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 не поддерживается, это возможно только путем пересоздания таблицы.

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

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

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

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

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

Скриншот 3

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

На сегодня это все, надеюсь, материал был Вам полезен, пока!

Ошибка при сохранении

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

94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Хранимая процедура — ошибка при сохранении
Всем привет! Скажите, пожалуйста, что мне надо исправить в моей хранимой процедуре CREATE.

Ошибка при сохранении форм
Пользуюсь Аксом 2007-2016 но разрабатываю БД в формате .adb и периодически выскакивает эта ошибка.

Ошибка при сохранении формы
Добрый вечер, такая проблема, при сохранении формы Акцес ругается: Приложению "Microsoft Access».

Ошибка при запуске и сохранении
Здравствуйте. Сделал базу данных через 2010 Access на основе готовой в .mdb, с некоторого.

1634 / 1135 / 171
Регистрация: 23.07.2010
Сообщений: 6,713
емнип где-то в SSMS была галка, которая обходит ошибку сию
1898 / 1345 / 273
Регистрация: 14.08.2018
Сообщений: 4,449
Записей в блоге: 4
Kongo86, ALTER TABLE используйте.
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь

Ошибка 3188 при сохранении LongText больше 2036 символов
Всем привет, Есть две формы (frmMain..) с одним и тем же списком айтемов на подформе.

При сохранении триггера «before*update» появляется ошибка 1064
Используется MySQL — 5.7 — х64 При сохранении триггера "before*update" появляется ошибка 1064.

Ошибка при сохранении
Есть 2 документа в формате excel которые создаются в 1С. Оба этих документа после создания.

Ошибка при сохранении
Всем привет) Ребят такое дело, при сохранении документа в Excel выходит ошибка, Данные берутся из.

Ошибка при сохранении
Здраствуйте! У меня следующая проблема, мне нужно по щелчку мыши из столбца kolvo_t текущей записи.

Ошибка при сохранении
Привет! Я делаю игру на андроид. Уже всё сделал, осталось сохранение игры сделать. и тут выдаёт.

Как устранить ошибку при сохранении?

641725097eef4660865535.png

Изменил типы данных в таблицах, теперь вылетает такая ошибка. Что сделать чтобы ее не возникало?

  • Вопрос задан 19 мар.
  • 28 просмотров

Комментировать

Решения вопроса 1

Taros @Taros Автор вопроса

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

Будьте аккураты, данные из таблиц могут пропасть.

Ответ написан 19 мар.

Комментировать

Нравится 1 Комментировать

Ответы на вопрос 0

Ваш ответ на вопрос

Войдите, чтобы написать ответ

sql

  • SQL
  • +1 ещё

Массив структур в Hive. Как проверить вхождение в массив структуры по маске?

  • 1 подписчик
  • вчера
  • 72 просмотра

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

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