SQL Server 2008:无法在中间位置插入新列并更改数据类型



我的操作系统是Windows服务器2008。

我已经安装了SQL Server Express 2008。

我有几个问题:

  1. 我无法在中间位置插入新列。如果我插入最后一个,我可以保存表格设计
  2. 我可以更改列名,但不能更改数据类型

我收到错误消息:不允许保存更改。您所做的更改要求删除并重新创建以下表。您对无法重新创建的表进行了更改,或者启用了"阻止保存需要重新创建表的更改"选项。

示例:

我有ID, Name, Phone,Status列。我无法在NamePhone之间添加Address

但是,如果我把Address放在Status之后,我可以添加它。

有什么办法解决这个问题吗?

谢谢你。

在SSMS工具->选项->设计器中,您需要取消选中"阻止保存需要重新创建表的更改"选项,以便在SSMS中执行此操作。

这将重建表,因此如果表很大,通常不值得麻烦,并且会使部署到生产环境变得更加棘手。

如果有一些列在逻辑上更喜欢并排排列,以便于编写查询,则可以创建具有所需列顺序的视图。

列顺序在设计器或sys.columns中都无关紧要

磁盘上的存储将相同,无论:存储引擎内部-记录解剖。

也没有性能优势。

我认为使用查询是不可能的,但您可以使用SSMS的UI。右键单击选定的表,然后随时插入列。

认为列顺序无关紧要。

如果您希望脚本执行此操作,您所需要做的就是将数据选择到一个临时表中,删除该表,按您喜欢的顺序用列重新创建它,然后按正确的顺序从临时表中重新插入数据。

最新更新