Kiedy tworzę tabelę w SQL Server i zapisuję ją, jeśli spróbuję edytować projekt tabeli, na przykład zmień typ kolumny z int na real, otrzymuję ten błąd:
Zapisywanie zmian jest niedozwolone. Dokonana zmiana wymaga usunięcia i ponownego utworzenia poniższej tabeli. Dokonałeś zmian w tabeli, których nie można odtworzyć, lub włączyłeś opcję zapobiegania zapisywaniu zmian, które wymagają ponownego utworzenia tabeli.
Dlaczego muszę ponownie utworzyć tabelę? Chcę tylko zmienić typ danych z smallint
na real
.
Stół jest pusty i do tej pory z niego nie korzystałem.
sql-server-2008
save
ssms
menuitem
Wysypka
źródło
źródło
Odpowiedzi:
Z okna dialogowego Zapisz (niedozwolone) w MSDN :
Zobacz także Wpis na blogu Colta Kwonga:
Zapisywanie zmian jest niedozwolone w SQL 2008 Management Studio
źródło
Czy korzystasz z SSMS?
Jeśli tak, przejdź do menu Narzędzia >> Opcje >> Projektanci i odznacz „Zapobiegaj zapisywaniu zmian wymagających ponownego utworzenia tabeli”
źródło
Dalsze wyjaśnienia
Domyślnie SQL Server Management Studio zapobiega upuszczaniu tabel, ponieważ po upuszczeniu tabeli zawartość danych jest tracona. *
Podczas zmiany typu danych kolumny w widoku Projekt tabeli, podczas zapisywania zmian baza danych upuszcza tabelę wewnętrznie, a następnie ponownie tworzy nową.
* Twoje szczególne okoliczności nie będą stanowić konsekwencji, ponieważ twój stół jest pusty. Podaję to wyjaśnienie, aby lepiej zrozumieć procedurę.
źródło
Aby zmienić opcję Zapobiegaj zapisywaniu zmian wymagających opcji ponownego tworzenia tabeli, wykonaj następujące kroki:
Otwórz SQL Server Management Studio (SSMS). W menu Narzędzia kliknij polecenie Opcje.
W okienku nawigacji okna Opcje kliknij Projektanci.
Zaznacz lub wyczyść pole wyboru Zapobiegaj zapisywaniu zmian, które wymagają ponownego utworzenia tabeli, a następnie kliknij OK.
Uwaga : Jeśli wyłączysz tę opcję, podczas zapisywania tabeli nie będziesz ostrzegany, że wprowadzone zmiany spowodowały zmianę struktury metadanych tabeli. W takim przypadku może wystąpić utrata danych podczas zapisywania tabeli.
źródło
Jest to bardzo łatwy i prosty problem z ustawieniem, który można naprawić w 5 sekund, wykonując następujące kroki
Aby umożliwić zapisywanie zmian po zmianie tabeli, wykonaj następujące kroki dla ustawienia sql:
źródło
Przejdź do narzędzia znajdującego się w górnym menu.
Wybierz opcje z rozwijanego menu. Teraz masz wyskakujące okienko i wybierz opcję Projektanci znajdującą się w lewym bloku menu. Odznacz opcję Zapobiegaj zapisywaniu zmian, które wymagają ponownego utworzenia tabeli . Kliknij przycisk OK.
źródło
Usuń zaznaczenie z
Prevent saving changes that require table re-creation
pola z Opcje ► Projektanci narzędzia ► karcie.Przykład programu SQL Server 2012:
źródło
Można to łatwo zmienić w Microsoft SQL Server .
źródło
Skopiowano z tego linku „... Ważne Zalecamy, aby nie omijać tego problemu, wyłączając opcję Zapobiegaj zapisywaniu zmian, które wymagają ponownego utworzenia tabeli. Aby uzyskać więcej informacji o ryzyku wyłączenia tej opcji, zobacz„ Więcej informacji „sekcja”.
„... Aby obejść ten problem, użyj instrukcji Transact-SQL, aby wprowadzić zmiany w strukturze metadanych tabeli. Aby uzyskać dodatkowe informacje, zobacz następujący temat w SQL Server Books Online
Na przykład, aby zmienić kolumnę MyDate typu datetime w tabeli o nazwie MyTable, aby zaakceptować wartości NULL, możesz użyć:
Zmień tabelę MyTable Zmień kolumnę MyDate7 datetime NULL ”
źródło
I na wypadek, gdyby ktoś tutaj również nie zwracał uwagi (jak ja):
W przypadku Microsoft SQL Server 2012 w oknie dialogowym opcji znajduje się sprytne małe pole wyboru, które Jawnie ukrywa wszystkie inne ustawienia. Chociaż muszę powiedzieć, że cały czas tęskniłem za tym małym potworem !!!
Następnie możesz przystąpić do wykonania kroków projektanta, odznacz opcję zapobiegaj zapisywaniu bla bla bla ...
źródło
Narzędzia >> Opcje >> Projektanci i odznacz „Zapobiegaj zapisywaniu zmian wymagających ponownego utworzenia tabeli”:
źródło
1) Otwórz narzędzie, które jest na górze.
2) Wybierz opcje z listy wyboru.
3) Teraz pojawia się wyskakujące okienko i możesz teraz wybrać opcję projektantów z listy menu po lewej stronie.
4) Teraz zapobiegaj zapisywaniu zmian należy odznaczać, że potrzebne było odtworzenie tabeli. Teraz kliknij OK.
źródło
Z menu Narzędzia, kliknij Opcje, wybierz Projektanci z menu bocznego i odznacz zapobiegaj zmianom, które mogą prowadzić do odtworzenia tabeli. Następnie zapisz zmiany
źródło
Jeśli nie widzisz „Zapobiegaj zapisywaniu zmian, które wymagały ponownego utworzenia tabeli” na takiej liście Obraz
Musisz włączyć śledzenie zmian.
źródło
Jeśli korzystasz z SQL Server Management Studio przejdź do Narzędzia >> Opcje >> Projektanci i odznacz „Zapobiegaj zapisywaniu zmian wymagających ponownego utworzenia tabeli” Działa to ze mną
źródło