Sql Server 'Saving changes is not permitted' error ► Prevent saving changes that require table re-creation

Sql Server-2008SaveSsmsMenuitem

Sql Server-2008 Problem Overview


When I create a table in SQL Server and save it, if I try to edit the table design, like change a column type from int to real, I get this error:

> Saving changes is not permitted. The change you have made requires the following table to be dropped and re-created. You have either made changes to a table that can't be recreated or enabled the option prevent saving changes that require the table to be re-created.

Why do I have to re-create the table? I just want to change a data type from smallint to real.

The table is empty, and I didn't use it until now.

Sql Server-2008 Solutions


Solution 1 - Sql Server-2008

From Save (Not Permitted) Dialog Box on MSDN :

> The Save (Not Permitted) dialog box warns you that saving changes is > not permitted because the changes you have made require the listed > tables to be dropped and re-created. > > The following actions might require a table to be re-created: > > - Adding a new column to the middle of the table > - Dropping a column > - Changing column nullability > - Changing the order of the columns > - Changing the data type of a column <<<< > > To change this option, on the Tools menu, click Options, expand > Designers, and then click Table and Database Designers. > Select or clear the Prevent saving changes that require the table to be > re-created check box.

See Also Colt Kwong Blog Entry:
Saving changes is not permitted in SQL 2008 Management Studio

Solution 2 - Sql Server-2008

Do you use SSMS?

If yes, goto the menu Tools >> Options >> Designers and uncheck “Prevent Saving changes that require table re-creation”

Solution 3 - Sql Server-2008

>Prevent saving changes that require table re-creation

>Five swift clicks

>Prevent saving changes that require table re-creation in five clicks

>1. Tools 2. Options

  1. Designers
  2. Prevent saving changes that require table re-creation
  3. OK.

>After saving, repeat the proceudure to re-tick the box. This safe-guards against accidental data loss.

Further explanation

  • By default SQL Server Management Studio prevents the dropping of tables, because when a table is dropped its data contents are lost.*

  • When altering a column's datatype in the table Design view, when saving the changes the database drops the table internally and then re-creates a new one.

*Your specific circumstances will not pose a consequence since your table is empty. I provide this explanation entirely to improve your understanding of the procedure.

Solution 4 - Sql Server-2008

This can be changed easily in Microsoft SQL Server.

> 1. Open Microsoft SQL Server Management Studio 2008 > 2. Click Tools menu > 3. Click Options > 4. Select Designers > 5. Uncheck "Prevent saving changes that require table re-creation" > 6. Click OK

enter image description here

Solution 5 - Sql Server-2008

To change the Prevent saving changes that require the table re-creation option, follow these steps:

Open SQL Server Management Studio (SSMS). On the Tools menu, click Options.

In the navigation pane of the Options window, click Designers.

Select or clear the Prevent saving changes that require the table re-creation check box, and then click OK.

Note: If you disable this option, you are not warned when you save the table that the changes that you made have changed the metadata structure of the table. In this case, data loss may occur when you save the table.

enter image description here

Solution 6 - Sql Server-2008

It is very easy and simple setting problem that can be fixed in 5 seconds by following these steps

To allow you to save changes after you alter table, Please follow these steps for your sql setting:

  1. Open Microsoft SQL Server Management Studio 2008
  2. Click Tools menu options, then click Options
  3. Select Designers
  4. Uncheck "prevent saving changes that require table re-creation" option
  5. Click OK
  6. Try to alter your table
  7. Your changes will performed as desired

Solution 7 - Sql Server-2008

Go on Tool located at top menu.
Choose options from dropdown.You have a popup now select Designers option located on left hand block of menus. Uncheck the option Prevent saving changes that require table re-creation. Click on OK Button.

Solution 8 - Sql Server-2008

Un-tick the Prevent saving changes that require table re-creation box from Tools ► Options ► Designers tab.

SQL Server 2012 example:

enter image description here

Solution 9 - Sql Server-2008

Copied from this link " ... Important We strongly recommend that you do not work around this problem by turning off the Prevent saving changes that require table re-creation option. For more information about the risks of turning off this option, see the "More information" section. ''

" ...To work around this problem, use Transact-SQL statements to make the changes to the metadata structure of a table. For additional information refer to the following topic in SQL Server Books Online

For example, to change MyDate column of type datetime in at table called MyTable to accept NULL values you can use:

alter table MyTable alter column MyDate7 datetime NULL "

Solution 10 - Sql Server-2008

And just in case someone here is also not paying attention (like me):

For Microsoft SQL Server 2012, in the options dialogue box, there is a sneaky little check box that APPARENTLY hides all other setting. Although I got to say that I have missed that little monster all this time!!!

After that, you may proceed with the steps, designer, uncheck prevent saving blah blah blah...

sneaky_check_box_in_option

Solution 11 - Sql Server-2008

Tools >> Options >> Designers and uncheck “Prevent Saving changes that require table re-creation”:

Description in Photos format

Solution 12 - Sql Server-2008

  1. Open tool which is on top.
  2. Choose options from Picklist.
  3. Now Comes the popup and you can now select designers option from the list of menus on the left side.
  4. Now prevent saving changes need to be unchecked that needed table re-creation. Now Click OK.

Solution 13 - Sql Server-2008

From the Tools menu, click on Options, select Designers from the side menu and untick prevent changes that can lead to recreation of a table. Then save the changes

Solution 14 - Sql Server-2008

If you use sql server Management studio go to Tools >> Options >> Designers and uncheck “Prevent Saving changes that require table re-creation” It works with me

Solution 15 - Sql Server-2008

If you can not see the "Prevent saving changes that required table re-creation" in list like that The image

You need to enable change tracking.

  • Right click on your database and click Properties
  • Click change tracking and make it enable
  • Go Tools -> Options -> Designer again and uncheck it.

Solution 16 - Sql Server-2008

Actually, You are blocked by SSMS not the SQL Server.

The solution are either change setting of SSMS or use a SQL query.

Using SQL Query you could do the update freely. Example you want to add a new column to a table, you could do like this :

> ALTER TABLE Customers ADD Email varchar(255) NOT NULL DEFAULT 'OK';

Other option is changing SSMS setting. Please refer to other answer, as many has explain it.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionArashView Question on Stackoverflow
Solution 1 - Sql Server-2008Robert HarveyView Answer on Stackoverflow
Solution 2 - Sql Server-2008ypercubeᵀᴹView Answer on Stackoverflow
Solution 3 - Sql Server-2008WonderWorkerView Answer on Stackoverflow
Solution 4 - Sql Server-2008Irshad Ahmed AkhonzadaView Answer on Stackoverflow
Solution 5 - Sql Server-2008Tabish UsmanView Answer on Stackoverflow
Solution 6 - Sql Server-2008Rizwan GillView Answer on Stackoverflow
Solution 7 - Sql Server-2008FIFO BIZSOLView Answer on Stackoverflow
Solution 8 - Sql Server-2008pedramView Answer on Stackoverflow
Solution 9 - Sql Server-2008PanagiotisView Answer on Stackoverflow
Solution 10 - Sql Server-2008Gellie AnnView Answer on Stackoverflow
Solution 11 - Sql Server-2008mirazimiView Answer on Stackoverflow
Solution 12 - Sql Server-2008Rishabh SethView Answer on Stackoverflow
Solution 13 - Sql Server-2008Ogbonna VitalisView Answer on Stackoverflow
Solution 14 - Sql Server-2008Taher ChtaywiView Answer on Stackoverflow
Solution 15 - Sql Server-2008Emre KarataşoğluView Answer on Stackoverflow
Solution 16 - Sql Server-2008Ahmad PujiantoView Answer on Stackoverflow