Сервер Sql "Збереження змін не дозволено" Помилка ► Попередити збереження змін, які потребують перетворення таблиці


748

Коли я створюю таблицю в SQL Server і зберігаю її, якщо я намагаюся редагувати дизайн таблиці, як-от змінити тип стовпця з int на реальний, я отримую цю помилку:

Збереження змін заборонено. Внесені вами зміни потребують відміни та повторної створення наступної таблиці. Ви або внесли зміни в таблицю, яку неможливо відтворити, або ввімкнено опцію запобігання збереженню змін, які потребують повторного створення таблиці.

Чому я повинен заново створити таблицю? Я просто хочу змінити тип даних з smallintна real.

Таблиця порожня, і я не використовував її до цих пір.


Відповіді:


1465

З діалогового вікна "Зберегти (не дозволено)" на MSDN :

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

Наступні дії можуть вимагати повторного створення таблиці:

  • Додавання нового стовпчика до середини таблиці
  • Скидання стовпця
  • Зміна нульовості стовпця
  • Зміна порядку стовпців
  • Зміна типу даних стовпця <<<<

Щоб змінити цю опцію, у меню Інструменти виберіть Опції , розгорніть Конструктори , а потім натисніть Дизайнери таблиць і баз даних . Установіть або зніміть прапорець Попередження збереження змін, що вимагає повторного створення таблиці .

Див. Також Запис у блозі Colt Kwong:
Збереження змін заборонено в SQL 2008 Management Studio


6
SSMS не повинен дозволяти вам робити щось небезпечне без попередження попередження. Але майте під рукою резервну копію, про всяк випадок.
Роберт Харві

39
Цей параметр повідомляє SSMS, що він може продовжувати та створювати таблицю темпів у новій схемі, скопіювати дані в цю, потім видалити стару таблицю та перейменувати таблицю темпів назад у вихідне ім'я. Все добре робити так, як слід угоди, однак відносини будуть порушені та відтворені, тож якщо не на 100%, то можна зробити щось несподіване.
Джастін Кінг

13
Не знаю, чому я не можу запам'ятати ці прості кроки, щоб скинути цю опцію, і мені завжди потрібно знайти рішення. Hehehehehe. Спасибі людино!
Розробник

8
Свята корова - ви можете просто відключити це, щоб пройти цю помилку ?? Я цього не знав, і останні 3 роки жив, боячись ненавмисно спроектувати таблицю без специфікації особи та створити нову таблицю. Чудова порада!
nocarrier

4
Ось CAVEAT від Microsoft відключення параметра "Запобігти збереження змін ...": support.microsoft.com/en-us/kb/956176 . В основному ви можете втратити метадані, такі як відстеження змін, якщо це функція, яку ви використовуєте.
Баодад

204

Чи використовуєте ви SSMS?

Якщо так, перейдіть до меню Інструменти >> Параметри >> Дизайнери та зніміть прапорець "Запобігати збереженню змін, які потребують відновлення таблиці"


Інструменти >> Параметри і т.д .. не «Меню» (тільки з SSMS 2014 Точка зору , яку я вважаю , це те ж саме в старіших версіях)
Том Stickel

@TomStickel Я думаю, я мав на увазі перейти до меню: "Інструменти"
ypercubeᵀᴹ

: P Так, я подумав, що, просто зрозумів, що я прокоментую всіх, хто насправді "застрягне", страшно, я знаю, але, мабуть, деякі люди можуть швидко кинути руки ... thx
Том Стікель

2
@NeilMeyer, будьте обережні, що прапорець прапорець поставлений там. Це запобіжний захід для запобігання операцій, які скидають та відтворюють таблицю (і, таким чином, втрачають усі її дані ! Отже, використовуйте обережно!
ypercubeᵀᴹ

чи будуть втрачені зв’язки між таблицями, якщо таблиці будуть створені таким чином?
Ніл Мейєр

78

Запобігати збереженню змін, які потребують відновлення таблиці

П’ять швидких клацань

Запобігайте збереженню змін, які потребують повторного створення таблиці за п'ять клацань

  1. Інструменти
  2. Параметри
  3. Дизайнери
  4. Запобігати збереженню змін, які потребують відновлення таблиці
  5. Гаразд .

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

Подальше пояснення

  • За замовчуванням SQL Server Management Studio запобігає викиданню таблиць, оскільки при падінні таблиці її вміст даних втрачається. *

  • Змінюючи тип даних стовпця у поданні таблиці «Дизайн», при збереженні змін база даних внутрішньо скидає таблицю, а потім знову створює нову.

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


27

Щоб змінити Захист змін збереження, які потребують опції відновлення таблиці, виконайте наступні дії:

Відкрийте студію управління SQL Server (SSMS). У меню Інструменти натисніть Параметри.

У вікні навігації у вікні Параметри натисніть Дизайнери.

Установіть або зніміть прапорець Попередження збереження змін, які потребують відновлення таблиці, і натисніть кнопку ОК.

Примітка . Якщо вимкнути цю опцію, при збереженні таблиці вас не попередить, що внесені вами зміни змінили структуру метаданих таблиці. У цьому випадку втрата даних може статися під час збереження таблиці.

введіть тут опис зображення


Дизайнер столів зручний, але ви не можете досягти всього з цим
Sitecore Sam

22

Це дуже легке і просте завдання налаштування, яке можна виправити за 5 секунд, виконавши ці кроки

Щоб ви могли зберегти зміни після зміни таблиці, виконайте наступні кроки для налаштування sql:

  1. Відкрийте Microsoft SQL Server Management Studio 2008
  2. Клацніть Параметри меню Інструменти, а потім Опції
  3. Виберіть дизайнерів
  4. Зніміть прапорець "запобігти збереженню змін, які потребують відновлення таблиці"
  5. Натисніть кнопку ОК
  6. Спробуйте змінити свою таблицю
  7. Ваші зміни виконуватимуться за бажанням

8
як це будь-яким чином додає до прийнятої відповіді?
Безсмертний блакитний

17

Перейдіть на Інструмент, розташований у верхньому меню.
Виберіть параметри зі спадного меню. У вас з'являється спливаюче меню, виберіть варіант Дизайнери, розташований у лівому блоці меню. Зніміть прапорець Попередження збереження змін, які потребують повторного створення таблиці . Натисніть кнопку ОК.


12

Un-тик в Prevent saving changes that require table re-creationкоробку з - Tools ► Далі ► Дизайнерів вкладки.

Приклад SQL Server 2012:

введіть тут опис зображення


12

Це можна легко змінити в Microsoft SQL Server .

  1. Відкрийте Microsoft SQL Server Management Studio 2008
  2. Натисніть меню Інструменти
  3. Клацніть Параметри
  4. Виберіть дизайнерів
  5. Зніміть прапорець "Запобігти збереження змін, які потребують відновлення таблиці"
  6. Натисніть кнопку ОК

введіть тут опис зображення


7

Скопійовано з цього посилання "... Важливо Ми наполегливо рекомендуємо не займатися цією проблемою, вимкнувши функцію" Запобігати збереженню змін, які потребують відновлення таблиці ". Для отримання додаткової інформації про ризики відключення цієї опції див." Більше інформації "розділ".

"... Щоб вирішити цю проблему, використовуйте оператори Transact-SQL, щоб внести зміни в структуру метаданих таблиці. Для додаткової інформації зверніться до наступної теми в SQL Server Books Online

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

таблиця змін MyTable змінний стовпець MyDate7 datetime NULL "


2
Із такою кількістю відповідей усі говорили одне й те саме, це була відповідь, яку я шукав, оскільки мав живі дані у своїй таблиці, яких я не хотів втрачати. Мені потрібно було оновити десятковий стовпчик від 0 десяткових знаків до 2 десяткових знаків, і простий вираз alter працював ідеально!
stitz

Трагедія тут полягає в тому, що SSMS повинен робити саме це під кришкою і, таким чином, не вимагати скидання столу
m12lrpv

6

І на всякий випадок, коли хтось тут теж не звертає уваги (як я):

Для Microsoft SQL Server 2012 у діалоговому вікні параметрів є підлий маленький прапорець, у якому ВІДПОВІДНО приховано всі інші налаштування. Хоча я повинен сказати, що я пропустив це маленьке чудовисько весь цей час !!!

Після цього ви можете продовжити дії, дизайнер, зніміть прапорець, щоб запобігти збереженню бла-бла-бла ...

sneaky_check_box_in_option


5

Інструменти >> Опції >> Дизайнери та зніміть прапорець "Запобігти збереженню змін, які потребують відновлення таблиці":

Опис у форматі Фото


2

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


1

У меню "Інструменти" натисніть "Параметри", виберіть "Дизайнери" в бічному меню і зніміть прапорець, щоб запобігти змінам, які можуть призвести до відпочинку таблиці. Потім збережіть зміни


0

Якщо ви не можете побачити "Перешкодити збереженню змін, які потребували перетворення таблиці", у такому списку зображення

Потрібно ввімкнути відстеження змін.

  • Клацніть правою кнопкою миші на базі даних та натисніть кнопку Властивості
  • Клацніть відстеження змін і ввімкніть його
  • Перейдіть Інструменти -> Опції -> Дизайнер ще раз і зніміть його.

0

Якщо ви використовуєте sql-сервер управління студією, перейдіть до Інструменти >> Параметри >> Дизайнери та зніміть прапорець "Запобігти збереженню змін, які потребують відновлення таблиці". Це працює зі мною

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.