无法更改SQL Server 2008中的表devise

我创build了一个表tbl_Candidate …但我忘了将主键设置为表,我没有保存主键…

下次我要在SQL Server 2008 Express中设置主键时,我收到一条消息,就像我必须删除表并重新创build,当我要保存与主键更改表…

这是当我试图保存表中的变化popup的消息…!

保存更改是不允许的。 您所做的更改要求将以下表格删除并重新创build。 您已对无法重新创build的表进行了更改,或者启用了保存需要重新创build表的更改的选项

我使用Windows身份validationlogin到SQL Server,服务器types为数据库引擎,服务器名称为.\SQLExpress

请给我一个方法来纠正这个问题或方法来更改SQL Server的设置…请给我一个方向..谢谢..

答案在MSDN网站上 :

“保存(不允许)”对话框将警告您不允许保存更改,因为您所作的更改要求删除和重新创build列出的表。

以下操作可能需要重新创build表格:

  • 在表格中间添加一个新列
  • 丢下一列
  • 改变列的可空性
  • 改变列的顺序
  • 更改列的数据types

编辑1:

其他有用的信息来自这里 :

要更改防止保存需要重新创build表的选项的更改,请按照下列步骤操作:

  1. 打开SQL Serverpipe理工作室(SSMS)。
  2. 在工具菜单上,单击选项。
  3. 在“选项”窗口的导航窗格中,单击“devise器”。
  4. 选中或清除“禁止保存需要重新创build表的更改”checkbox,然后单击“确定”。

注:如果禁用此选项,则在保存表时发生的更改已经更改表的元数据结构时,不会发出警告。 在这种情况下,保存表时可能会发生数据丢失。

closures“禁止保存需要重新创build表的更改”选项的风险

尽pipeclosures此选项可以帮助您避免重新创build表格,但也会导致更改丢失。 例如,假设您启用SQL Server 2008中的更改跟踪function来跟踪对表的更改。 当您执行重新创build表的操作时,您会收到“症状”部分中提到的错误消息。 但是,如果closures此选项,则在重新创build表时将删除现有的更改跟踪信息。 因此,我们build议您不要通过closures该选项来解决此问题。

设置,屏幕截图

您可以直接为表添加约束

 ALTER TABLE TableName ADD CONSTRAINT ConstraintName PRIMARY KEY(ColumnName) GO 

确保您的主键列不应该有任何空值。

选项2:

你可以改变你的SQL Management Studio选项

要更改此选项,请在工具菜单上,单击选项,展开devise器,然后单击表和数据库devise器。 选中或清除“保存要求重新创build表的更改”checkbox。

防止保存需要重新创build表的更改

五个快速点击

防止保存需要重新创建表格的更改,只需点击五次即可

  1. 工具
  2. 选项
  3. devise师
  4. 防止保存需要重新创build表的更改
  5. 好的

保存后,重复此过程重新勾选该框。 这安全 – 防止意外的数据丢失。

进一步解释

  • 默认情况下,SQL Server Management Studio将防止删除表,因为删除表时,其数据内容会丢失。

  • 在devise视图中更改列的数据types时,保存更改时,数据库会在内部删除表,然后重新创build一个新表。

*由于您的表格是空的,您的具体情况不会造成任何后果。 我完全提供这个解释来提高你对程序的理解。