我的操作系统是Windows服务器2008。
我已经安装了SQL Server Express 2008。
我有几个问题:
- 我无法在中间位置插入新列。如果我插入最后一个,我可以保存表格设计
- 我可以更改列名,但不能更改数据类型
我收到错误消息:不允许保存更改。您所做的更改要求删除并重新创建以下表。您对无法重新创建的表进行了更改,或者启用了"阻止保存需要重新创建表的更改"选项。
示例:
我有ID, Name, Phone,
和Status
列。我无法在Name
和Phone
之间添加Address
。
但是,如果我把Address
放在Status
之后,我可以添加它。
有什么办法解决这个问题吗?
谢谢你。
在SSMS工具->选项->设计器中,您需要取消选中"阻止保存需要重新创建表的更改"选项,以便在SSMS中执行此操作。
这将重建表,因此如果表很大,通常不值得麻烦,并且会使部署到生产环境变得更加棘手。
如果有一些列在逻辑上更喜欢并排排列,以便于编写查询,则可以创建具有所需列顺序的视图。
列顺序在设计器或sys.columns中都无关紧要。
磁盘上的存储将相同,无论:存储引擎内部-记录解剖。
也没有性能优势。
我认为使用查询是不可能的,但您可以使用SSMS的UI。右键单击选定的表,然后随时插入列。
认为列顺序无关紧要。
如果您希望脚本执行此操作,您所需要做的就是将数据选择到一个临时表中,删除该表,按您喜欢的顺序用列重新创建它,然后按正确的顺序从临时表中重新插入数据。