Felmeddelande om att spara ändringar tillåts inte i SSMS
Den här artikeln hjälper dig att kringgå problemet där du får ett felmeddelande när du försöker spara en tabell i SQL Server Management Studio (SSMS).
Ursprunglig produktversion: SQL Server
Ursprungligt KB-nummer: 956176
Symptom
När du försöker spara en tabell när du har gjort ändringar i tabellen med designern i SQL Server Management Studio kan följande felmeddelande visas:
Det är inte tillåtet att spara ändringar. De ändringar som du har gjort kräver att följande tabeller tas bort och återskapas. Du har antingen gjort ändringar i en tabell som inte kan återskapas eller aktiverat alternativet Förhindra att ändringar sparas som kräver att tabellen återskapas.
Det här problemet uppstår när du gör en eller flera av följande ändringar i tabellen:
- Du ändrar inställningen Tillåt nulls för en kolumn.
- Du ordnar om kolumner i tabellen.
- Du ändrar kolumndatatypen.
- Du lägger till en ny kolumn.
- Du ändrar
filegroup
för en tabell eller desstext/image
-data.
Orsak
Det här problemet beror på att alternativet Förhindra att ändringar sparas som kräver att tabellen återskapas är aktiverat som standard i SQL Server Management Studio.
När du ändrar en tabell så att du ändrar tabellens metadatastruktur och sedan sparar tabellen, måste tabellen återskapas baserat på dessa ändringar. Detta kan leda till förlust av metadata och en direkt dataförlust när tabellen återskapas. Om du aktiverar alternativet Förhindra att ändringar sparas som kräver att tabellen återskapas i avsnittet Designer i fönstret SQL Server Management Studio (SSMS)-alternativ visas felmeddelandet som nämns i avsnittet Symptom.
Lösning
För att kringgå det här problemet använder du ALTER TABLE
Transact-SQL-satser för att göra ändringar i metadatastrukturen i en tabell.
Om du till exempel vill ändra kolumnen MyDate av typen datetime i tabellen med namnet MyTable så att den accepterar nullvärden kan du använda:
alter table MyTable alter column MyDate7 datetime NULL
Viktigt!
Vi rekommenderar starkt att du inte kringgår det här problemet genom att inaktivera alternativet Förhindra att ändringar sparas som kräver att tabellen återskapas. Mer information om riskerna med att stänga av det här alternativet finns i avsnittet Mer information.
Mer information
Följ dessa steg om du vill ändra alternativet Förhindra att ändringar sparas som kräver att tabellen återskapas:
Öppna SQL Server Management Studio.
Klicka på Alternativ på Verktyg-menyn.
I navigeringsfönstret i fönstret Alternativ klickar du på Designers.
Markera eller avmarkera kryssrutan Förhindra att ändringar sparas som kräver att tabellen återskapas och klicka sedan på OK.
Kommentar
Om du inaktiverar det här alternativet får du ingen varning när du sparar tabellen om att de ändringar som du har gjort har ändrat tabellens metadatastruktur. I det här fallet kan dataförlust uppstå när du sparar tabellen.
Risk för att inaktivera alternativet "Förhindra att ändringar sparas som kräver att tabellen återskapas" stängs av
Även om åtgärden med att stänga av det här alternativet kan hjälpa dig att undvika att återskapa en tabell, kan det också leda till att ändringar går förlorade. Anta till exempel att du aktiverar funktionen Ändringsspårning i SQL Server för att spåra ändringar i tabellen. När du utför en åtgärd som gör att tabellen återskapas får du felmeddelandet som nämns i avsnittet Symptom. Men om du inaktiverar det här alternativet tas den befintliga ändringsspårningsinformationen bort när tabellen återskapas. Därför rekommenderar vi att du inte kringgår det här problemet genom att stänga av alternativet.
Följ dessa steg för att avgöra om funktionen Ändringsspårning är aktiverad för en tabell:
- Leta upp tabellen i Object Explorer i SQL Server Management Studio.
- Högerklicka på tabellen och klicka på Egenskaper.
- Klicka på Ändringsspårning i dialogrutan Tabellegenskaper. Om värdet på objektet Ändringsspårning är Sant är det här alternativet aktiverat för tabellen. Om värdet är Falskt är det här alternativet inaktiverat.
När funktionen Change Tracking
är aktiverad använder du Transact-SQL-satser för att ändra tabellens metadatastruktur.
Steg för att återskapa problemet
- I SQL Server Management Studio skapar du en tabell som innehåller en primärnyckel i verktyget Tabelldesigner.
- Högerklicka på databasen som innehåller den här tabellen och klicka sedan på Egenskaper.
- I dialogrutan Databasegenskaper klickar du på Ändringsspårning.
- Ställ in värdet för objektet Ändringsspårning till Sant och klicka sedan på OK.
- Högerklicka på tabellen och klicka på Egenskaper.
- I dialogrutan Tabellegenskaper klickar du på Ändringsspårning.
- Ställ in värdet för objektet Ändringsspårning till Sant och klicka sedan på OK.
- Klicka på Alternativ på Verktyg-menyn.
- I dialogrutan Alternativ klickar du på Designers.
- Klicka för att markera kryssrutan Förhindra att ändringar sparas som kräver att tabellen återskapas och klicka sedan på OK.
- I verktyget Tabelldesigner ändrar du inställningen Tillåt nullvärden i en befintlig kolumn.
- Försök att spara ändringen i tabellen.