Lock

Jak zlikwidować komunikat - Saving changes is not permitted. The changes that you have made require the following tables to be dropped and re-created.

ERROR:


SQL SERVER Komunikat

“Saving changes is not permitted. The changes that 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.”

Ten błąd pojawia się gdy używając SQL Server 2008 Management Studio chcesz zmodyfikować strukturę tabeli gdy SQL Server musi skasować i odtworzyć tabele aby wprowadź twoje zmiany.

Zalecane jest korzystanie z T-SQL w czasie zmian w bazie danych. Jednak do prostych projektów DEMO oraz aplikacji domowych nie jest to konieczne. Dlatego opiszę jak zlikwidować tę blokadę zmian?.
 

Jak wyłączyć “Prevent saving changes that require the table re-creation”

1. Otwórz SQL Serwer 2008 Management Studio. Kliknij na “Tools” ,a potem na “Options”.

SQL 2008_01

2. Rozszerz opcje w zakładce “Designers” i zaznaczy  “Table and Database Designers” tak jak jest pokazane poniżej.


Options

W opcjach po prawej odznacz opcję “Prevent saving changes that require the table re-creation” i zapis zmiany.

Ta opcja zabezpiecza użytkowników przed wprowadzeniem zmian strukturalnych, gdy używamy interfejsu graficznego SQL Server Management Studio zwłaszcza, gdy SQL Server musi dotworzyć tabele aby zapisać zmiany. Domyślnie ta opcja jest zaznaczona i musisz ją odznaczyć, jeśli chcesz aby użytkownicy mogli wprowadzać zmiany strukturalne przez SQL Server Management Studio, które wymagają odtworzenia tabeli.

Oto lista zadań które wymagają odtworzenia tabeli.

  • Umieszczenie nowej kolumny w środku tabeli
  • Dodanie nowej kolumny do tabeli.
  • Zmiana opcji “Allow Nulls” w ustawieniach kolumn.
  • Modyfikacja klucza w tabeli.
  • Zmiana kolejności kolumn wewnątrz tabeli
  • Modyfikacja typu danych w kolumnach

Odznaczając opcję “Prevent saving changes that require the table re-creation” możesz już śmiało dokonywać zmian.


SQL 2008_02

Od tej pory będziesz widział komunikat ostrzegający przed zmianami w tabeli. Tym razem jednak masz do dyspozycji opcje “Yes”, która zatwierdza zmiany. Zwróć uwagę na to ,że czasem zmiana właściwości w jednej tabeli powoduje odtworzenie wielu tabel.

Tak jak mówiłem wcześniej wprowadzenie zmian w strukturze tabeli poprzez interfejs programu nie jest zalecane. Przykładowo wprowadzając zmiany w ten sposób nie jesteś w stanie wyśledzić swoich dokonanych zmian. Nie mówiąc o tym ,że odtworzenie tabeli kasuje historie dokonanych zmian w funkcji “Change Tracking” , jeśli ją posiadasz.