我的情景:
我可以更改表中列的序号位置。有没有办法在不重新创建表的情况下更改表中列的序号位置?
答案 0 :(得分:4)
否,如果您希望实现此目的,则必须重新创建表格。 (SQL SERVER)
即使您在SSMS中执行此操作,您也会看到生成的脚本也会重新创建表。
答案 1 :(得分:1)
不在SQL Server中 - 不确定其他RDBMS。
您可以使用所需的序数位置创建一个视图,但我认为唯一有用的时间是使用SELECT *
,这是一种应该避免的做法。
答案 2 :(得分:0)
您好,这取决于您使用的数据库系统。 例如,在某些情况下,可以删除并添加列,您可以在程序部分执行此操作,也可以在其中重新填充。
但总的来说,它应该无关紧要,因为您可以在select语句中定义返回的数据顺序。对你来说还不够吗?
答案 3 :(得分:0)
不重新创建表是不可能的。但是,如果您担心丢失数据,SQl Server Management Studio 提供了一个选项。
注意:我使用的是 Sql Server 2019 Developer Edition。
SQlServer Table Design Options
如果你想在脚本级别做,你可以看下面SSMS提供的思路
启用工具菜单 --> 选项 --> 设计器 --> 表和数据库设计器中可用的“自动生成更改脚本”选项。
Enabling the Auto Generate Change Script Option
当您在 SSMS 中拖动列时,它会自动为您创建脚本。
自动生成脚本中的高级想法是,
当然要在事务范围内做所有事情,以避免在脚本执行时丢失任何数据。
我找到了一个很好的理由来说明为什么我们需要花一些时间here。有趣的是,它是基于 Context 而不是对 Technical 做任何事情。
例如,原始地址表包含、街道地址 1、城市、州、邮编和国家列。如果要求更改为包括街道地址 2 之类的新列,这将意味着已满。