Błąd SQL Server "zapisywanie zmian nie jest dozwolone" ► Zapobiegaj zapisywaniu zmian, które wymagają ponownego utworzenia tabeli

Kiedy tworzę tabelę w SQL Server i ją zapisuję, jeśli próbuję edytować projekt tabeli, np. zmienić typ kolumny z int na real, dostaję ten błąd:

Zapisywanie zmian jest niedozwolone. Dokonana zmiana wymaga upuszczenia i ponownego utworzenia poniższej tabeli. Wprowadzono zmiany w tabeli, których nie można odtworzyć, lub włączono opcję zapobiegaj zapisywaniu zmian, które wymagają ponownego utworzenia tabeli.

Dlaczego muszę odtworzyć tabelę? Chcę tylko zmienić typ danych z smallint na real.

Tabela jest pusta, i nie używałem jej do tej pory.

Author: Brian Tompsett - 汤莱恩, 2011-07-24

16 answers

Z Zapisz (niedozwolone) okno dialogowe na MSDN :

Okno dialogowe Zapisz (niedozwolone) ostrzega, że zapisywanie zmian jest niedozwolone, ponieważ wprowadzone zmiany wymagają wymienionych tabele do upuszczenia i ponownego utworzenia.

Następujące działania mogą wymagać ponownego utworzenia tabeli:

  • Dodawanie nowej kolumny do środka tabeli
  • opuszczanie kolumny
  • Zmiana nullability kolumny
  • Zmiana kolejność kolumn
  • Zmiana typu danych kolumny

Aby zmienić tę opcję, w menu Narzędzia Kliknij Opcje, rozwiń projektanci , a następnie kliknij projektanci tabeli i bazy danych . Zaznacz lub wyczyść Zapobiegaj zapisywaniu zmian, które wymagają, aby tabela była ponownie utworzone pole wyboru .

Zobacz Wpis na blogu Colt Kwong:
zapisywanie zmian nie jest dozwolone w zarządzaniu SQL 2008 Studio

 1538
Author: Robert Harvey,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-06-20 09:12:55

Czy używasz SSMS?

Jeśli tak, przejdź do menu Narzędzia > > Opcje > > projektanci i odznacz "Zapobiegaj zapisywaniu zmian wymagających ponownego utworzenia tabeli"

 232
Author: ypercubeᵀᴹ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-05-23 19:48:52

Zapobiega zapisywaniu zmian wymagających ponownego utworzenia tabeli

Pięć szybkich kliknięć

Zapobiegaj zapisywaniu zmian wymagających ponownego utworzenia tabeli za pomocą pięciu kliknięć

  1. Narzędzia
  2. opcje
  3. projektanci
  4. zapobiega zapisywaniu zmian wymagających ponownego utworzenia tabeli
  5. OK .

Po zapisaniu powtórz procedurę, aby ponownie zaznaczyć pole. Ten sejf-chroni przed przypadkowymi danymi strata.

Dalsze wyjaśnienie

  • Domyślnie SQL Server Management Studio zapobiega upuszczaniu tabel, ponieważ po upuszczeniu tabeli jej zawartość danych jest tracona.*

  • Podczas zmiany typu danych kolumny w widoku Projekt tabeli, podczas zapisywania zmian baza danych opuszcza tabelę wewnętrznie, a następnie ponownie tworzy nową.

* twoje szczególne okoliczności nie będą miały konsekwencji, ponieważ twój stół jest pusty. I podaj to wyjaśnienie w całości, aby poprawić zrozumienie procedury.

 87
Author: WonderWorker,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-06 12:55:58

Aby zmienić opcję Zapobiegaj zapisywaniu zmian, które wymagają ponownego utworzenia tabeli, wykonaj następujące kroki:

Open SQL Server Management Studio (SSMS). W menu Narzędzia kliknij Opcje.

W okienku nawigacji w oknie Opcje kliknij przycisk 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ę, nie zostaniesz ostrzeżony podczas zapisywania tabeli, że wprowadzone zmiany zmieniły strukturę metadanych tabeli. W takim przypadku może wystąpić utrata danych podczas zapisywania tabeli.

Tutaj wpisz opis obrazka

 32
Author: Tabish Usman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-29 10:41:05

Jest to bardzo łatwy i prosty problem z ustawieniem, który można naprawić w ciągu 5 sekund, wykonując następujące kroki

Aby umożliwić zapisywanie zmian po zmianie tabeli, wykonaj następujące kroki dla ustawienia sql:

  1. Open Microsoft SQL Server Management Studio 2008
  2. Kliknij Opcje menu Narzędzia, a następnie Opcje
  3. Wybierz Projektantów
  4. odznacz opcję "zapobiegaj zapisywaniu zmian, które wymagają ponownego utworzenia tabeli"
  5. Kliknij OK
  6. spróbuj Zmień swój stół
  7. Twoje zmiany będą wykonywane zgodnie z życzeniem
 23
Author: Rizwan Gill,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-01-22 11:03:46

Można to łatwo zmienić w Microsoft SQL Server.

  1. Open Microsoft SQL Server Management Studio 2008
  2. Kliknij menu Narzędzia
  3. Opcje Kliknij
  4. Wybierz Projektantów
  5. odznacz opcję "Zapobiegaj zapisywaniu zmian, które wymagają ponownego utworzenia tabeli"
  6. Kliknij OK

Tutaj wpisz opis obrazka

 21
Author: Irshad Ahmed Akhonzada,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-11-05 14:05:28

Przejdź do narzędzia znajdującego się w górnym menu.
Wybierz opcje z listy rozwijanej.Masz teraz wyskakujące okienko wybierz opcję projektanci znajdującą się po lewej stronie bloku menu. Odznacz opcję Zapobiegaj zapisywaniu zmian wymagających ponownego utworzenia tabeli. Kliknij przycisk OK.

 18
Author: FIFO BIZSOL,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-04-22 09:11:59

Zaznacz pole Prevent saving changes that require table re-creationz zakładki Tools ► Options ► Designers.

SQL Server 2012 przykład:

Tutaj wpisz opis obrazka

 13
Author: pedram,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-06 09:31:05

Skopiowane z tego linku " ... Ważne zdecydowanie zalecamy, aby nie rozwiązywać tego problemu, wyłączając opcję Zapobiegaj zapisywaniu zmian, które wymagają ponownego utworzenia tabeli. Więcej informacji na temat ryzyka wyłączenia tej opcji można znaleźć w sekcji "Więcej informacji". ''

" ... aby obejść ten problem, użyj poleceń Transact-SQL, aby wprowadzić zmiany w strukturze metadanych tabeli. Dodatkowe informacje znajdują się w poniższym temacie w SQL Server Books Online

Na przykład, aby zmienić kolumnę MyDate typu datetime w tabeli at o nazwie MyTable, aby przyjąć wartości NULL można użyć:

Alter table MyTable alter column MyDate7 datetime NULL "

 9
Author: Panagiotis,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-30 05:41:59

I tak na wszelki wypadek ktoś tutaj też nie zwraca uwagi (jak ja):

Dla Microsoft SQL Server 2012 w oknie dialogowym Opcje znajduje się sprytne małe pole wyboru, które najwyraźniej ukrywa wszystkie inne ustawienia. Chociaż muszę powiedzieć, że tęskniłem za tym małym potworem przez cały ten czas!!!

Następnie możesz kontynuować kroki, projektant, odznacz zapobiegaj zapisywaniu bla bla bla...

sneaky_check_box_in_option

 7
Author: Gellie Ann,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-21 07:47:19

Narzędzia > > Opcje > > projektanci i odznacz opcję "Zapobiegaj zapisywaniu zmian wymagających ponownego utworzenia tabeli":

Opis w formacie Zdjęcia

 6
Author: سیدرسول میرعظیمی,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-02-22 10:09:20

1) Otwórz narzędzie, które jest na górze.
2) Wybierz opcje z Picklist.
3) teraz pojawia się wyskakujące okienko i możesz teraz wybrać opcję projektanci z listy menu po lewej stronie.
4) Teraz zapobiegaj zapisywaniu zmian należy odznaczyć, że potrzebne jest ponowne utworzenie tabeli. Teraz kliknij OK.

 2
Author: Rishabh Seth,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-18 10:54:25

Z menu Narzędzia kliknij Opcje, wybierz projektantów z menu bocznego i odznacz zapobiegaj zmianom, które mogą prowadzić do odtworzenia tabeli. Następnie zapisz zmiany

 1
Author: Ogbonna Vitalis,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-27 12:06:30

Jeśli nie widzisz "Zapobiegaj zapisywaniu zmian, które wymagają ponownego utworzenia tabeli" na liście w ten sposób obraz

Musisz włączyć śledzenie zmian.

  • Kliknij prawym przyciskiem myszy na bazie danych i kliknij Właściwości
  • kliknij Zmień śledzenie i włącz je
  • przejdź ponownie Tools -> Options - > Designer i odznacz go.
 0
Author: Emre Karataşoğlu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-14 15:51:15

Jeśli używasz SQL server Management studio przejdź do Narzędzia > > Opcje > > projektanci i odznacz opcję " Zapobiegaj zapisywaniu zmian wymagających ponownego utworzenia tabeli" It works with me

 0
Author: Taher Chtaywi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-09 11:24:34

W rzeczywistości jesteś blokowany przez SSMS, a nie serwer SQL.

Więc rozwiązaniem jest albo zmiana ustawień SSMS lub użycie zapytania SQL.

 0
Author: Ahmad Pujianto,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-09-08 15:07:25