2012-03-26 59 views
37

我创建了一个表tbl_Candidate ...但我忘了设置主键的表,我救它没有主键...无法更改表的设计在SQL Server 2008

下一次我我要在SQL Server 2008 Express中设置主键,我得到一条消息,如我必须删除表并重新创建时,我要保存主键更改表...

这是消息当我试图在表格中保存更改时弹出... !!

保存更改是不允许的。您所做的更改要求 要删除并重新创建以下表格。你要么做 变化表无法重建或启用 禁止保存需要的表是更改的选项重新

我登录到SQL Server和Windows身份验证,服务器类型数据库引擎和服务器名称为.\SQLExpress

请给我一个方法来解决此问题或方式来更改SQL Server的设置......请给我一个方向..谢谢..

回答

78

答案是对MSDN site

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

下列操作可能会需要一个表来重新创建:

  • 添加新列到表
  • 中间删除列
  • 更改列的为空
  • 更改列顺序
  • 更改列的数据类型

编辑1:

其它有用的here信息:

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

  1. 打开SQL Server Management Studio(SSMS)。
  2. 在工具菜单上,单击选项。
  3. 在选项窗口的导航窗格中,单击设计师。
  4. 选中或清除“禁止保存需要重新创建表的更改”复选框,然后单击“确定”。

注意如果禁用此选项,当您保存表,你所做的更改已经更改了表的元数据 结构,你不警告。在这种情况下,当您保存表格时,可能会发生数据丢失。关闭“阻止保存需要表重新创建的更改”选项

虽然关闭该选项可以帮助您避免重新创建一个 表

风险,这也可能导致的变化是丢失。例如,假设您启用SQL Server 2008中的更改跟踪功能 到 跟踪对该表的更改。当您执行的操作导致 表被重新创建时,您会收到“症状”一节中提到的 错误消息。但是,如果关闭此选项,则重新创建 表时将删除现有更改跟踪信息。因此,我们建议您通过关闭该选项来避免在此问题上使用 。

Settings, screen shot

+1

谢谢你..先生...... – tharindlaksh 2012-03-26 11:11:20

+0

谢谢你太多的答案! – 2013-04-08 08:03:59

+0

谢谢先生@pylover – 2016-12-28 02:08:25

6

您可以直接添加约束的表

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

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

选项2:

你可以改变你的SQL Management Studio中选择喜欢

要改变这个选项,在工具菜单上,单击选项,展开 设计师,然后单击表格和数据库设计人员。选择或 清除“保存需要重新创建表的 ”更改复选框。

+0

谢谢你..先生...... – tharindlaksh 2012-03-26 11:15:35

1

禁止保存需要表重新创建

五迅速点击

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

  1. 工具的变化
  2. 需要表重新创建
  3. OK 个选项
  4. 设计师
  5. 防止保存更改。

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

进一步解释

  • 默认情况下,SQL Server Management Studio中防止表的下降,因为当一个表被删除其数据内容丢失。*

  • 当改变一个列在表设计视图中的数据类型,保存更改时,数据库中删除表内,然后重新创建一个新的。

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