Delen via


Foutbericht in SSMS 'Wijzigingen opslaan is niet toegestaan'

Dit artikel helpt u het probleem te omzeilen waarbij u een foutbericht ontvangt wanneer u een tabel probeert op te slaan in SQL Server Management Studio (SSMS).

Oorspronkelijke productversie: SQL Server
Oorspronkelijk KB-nummer: 956176

Symptomen

Wanneer u een tabel probeert op te slaan nadat u wijzigingen in de tabel hebt aangebracht met Designer in SQL Server Management Studio, wordt mogelijk het volgende foutbericht weergegeven:

Het opslaan van wijzigingen is niet toegestaan. Voor de wijzigingen die u hebt aangebracht, moeten de volgende tabellen worden verwijderd en opnieuw worden gemaakt. U hebt ofwel wijzigingen aangebracht in een tabel die niet opnieuw kan worden gemaakt, ofwel de optie 'Voorkom opslaan van wijzigingen die vereisen dat de tabel opnieuw wordt gemaakt' ingeschakeld.

Dit probleem treedt op wanneer u een of meer van de volgende wijzigingen aanbrengt in de tabel:

  • U wijzigt de instelling Nulls toestaan voor een kolom.
  • U rangschikt kolommen in de tabel opnieuw.
  • U wijzigt het gegevenstype van de kolom.
  • U voegt een nieuwe kolom toe.
  • U wijzigt de filegroup van een tabel of zijn text/image-gegevens.

Oorzaak

Dit probleem treedt op omdat de optie Opslaan van wijzigingen voorkomen waarvoor de tabel opnieuw moet worden gemaakt standaard is ingeschakeld in SQL Server Management Studio.

Wanneer u een tabel wijzigt zodat u de metagegevensstructuur van de tabel wijzigt en u vervolgens de tabel opslaat, moet de tabel opnieuw worden gemaakt op basis van deze wijzigingen. Dit kan leiden tot het verlies van metagegevens en direct verlies van gegevens tijdens het opnieuw maken van de tabel. Als u de optie Opslaan van wijzigingen voorkomen waarvoor de tabel opnieuw moet worden gemaakt inschakelt in het gedeelte Designer van venster Opties voor SQL Server Management Studio (SSMS), ontvangt u het foutbericht dat wordt vermeld in de sectie Symptomen.

Tijdelijke oplossing

U kunt dit probleem omzeilen door ALTER TABLE Transact-SQL-instructies te gebruiken om de wijzigingen in de metagegevensstructuur van een tabel aan te brengen.

Als u bijvoorbeeld de kolom MyDate van het type datum/tijd in de tabel MyTable wilt wijzigen om NULL-waarden te accepteren, kunt u het volgende gebruiken:

alter table MyTable alter column MyDate7 datetime NULL

Belangrijk

We raden u ten zeerste aan om dit probleem niet te omzeilen door de optie Opslaan van wijzigingen voorkomen waarvoor de tabel opnieuw moet worden gemaakt, uit te schakelen. Raadpleeg de sectie 'Meer informatie' voor meer informatie over de risico's van het uitschakelen van deze optie.

Meer informatie

Ga als volgt te werk om de optie Opslaan van wijzigingen voorkomen waarvoor de tabel opnieuw moet worden gemaakt te wijzigen:

  1. Start SQL Server Management Studio.

  2. Klik op Opties in het menu Extra.

  3. Klik in het navigatievenster van het venster Opties op Ontwerpers.

  4. Schakel het selectievakje Opslaan van wijzigingen voorkomen waarvoor de tabel opnieuw moet worden gemaakt in of uit en klik op OK.

Notitie

Als u deze optie uitschakelt, wordt u niet gewaarschuwd wanneer u de tabel opslaat dat de wijzigingen die u hebt aangebracht de metagegevensstructuur van de tabel hebben gewijzigd. In dit geval kan er gegevensverlies optreden wanneer u de tabel opslaat.

Risico van het uitschakelen van de optie 'Opslaan van wijzigingen voorkomen waarvoor de tabel opnieuw moet worden gemaakt'

Hoewel het uitschakelen van deze optie u kan helpen om te voorkomen dat u een tabel opnieuw maakt, kan dit er ook toe leiden dat wijzigingen verloren gaan. Stel bijvoorbeeld dat u de functie Wijzigingen bijhouden in SQL Server inschakelt om wijzigingen in de tabel bij te houden. Wanneer u een bewerking uitvoert waardoor de tabel opnieuw wordt gemaakt, ontvangt u het foutbericht dat wordt vermeld in de sectie Symptomen. Als u deze optie echter uitschakelt, wordt de bestaande informatie over het bijhouden van wijzigingen verwijderd wanneer de tabel opnieuw wordt gemaakt. Daarom raden we u aan dit probleem niet te omzeilen door de optie uit te schakelen.

Volg de onderstaande stappen om te bepalen of de functie Wijzigingen bijhouden is ingeschakeld voor een tabel:

  1. Zoek in SQL Server Management Studio de tabel in Objectverkenner.
  2. Klik met de rechtermuisknop op de tabel en klik vervolgens op Eigenschappen.
  3. Klik in het dialoogvenster Tabeleigenschappen op Wijzigingen bijhouden. Als de waarde van het item Wijzigingen bijhouden waar is, is deze optie ingeschakeld voor de tabel. Als de waarde onwaar is, is deze optie uitgeschakeld.

Wanneer de functie Change Tracking is ingeschakeld, gebruikt u Transact-SQL-instructies om de metagegevensstructuur van de tabel te wijzigen.

Stappen om dit probleem te reproduceren

  1. Maak in SQL Server Management Studio een tabel die een primaire sleutel bevat in het hulpprogramma Tabelontwerper.
  2. Klik met de rechtermuisknop op de database die deze tabel bevat en klik vervolgens op Eigenschappen.
  3. Klik in het dialoogvenster Database-eigenschappen op Wijzigingen bijhouden.
  4. Stel de waarde van het item Wijzigingen bijhouden in op Waar en klik vervolgens op OK.
  5. Klik met de rechtermuisknop op de tabel en klik vervolgens op Eigenschappen.
  6. Klik in het dialoogvenster Tabeleigenschappen op Wijzigingen bijhouden.
  7. Stel de waarde van het item Wijzigingen bijhouden in op Waar en klik vervolgens op OK.
  8. Klik op Opties in het menu Extra.
  9. Klik in het dialoogvenster Opties op Ontwerpers.
  10. Klik om het selectievakje Opslaan van wijzigingen voorkomen waarvoor de tabel opnieuw moet worden gemaakt in te schakelen en klik vervolgens op OK.
  11. Wijzig in de hulpprogramma Tabelontwerper de instelling Null-waarden toestaan voor een bestaande kolom.
  12. Probeer de wijziging in de tabel op te slaan.