【发布时间】:2013-09-17 21:18:15
【问题描述】:
我在 SQL Server 2012 数据库表中有一个表,其中包含以下列
Id (PK)
Name
UserId (FK)
Created
Updated
我想通过将 Name 和 UserId 交换为来更改列的顺序
Id (PK)
UserId (FK)
Name
Created
Updated
请注意,该表目前不包含任何数据。通常我不会编写 ALTER 脚本,只需使用 SQL Management Studio 来创建和修改我的表。我通常会简单地使用 DROP AND CREATE TO 菜单选项来重新创建表并修改列的顺序,但在这种情况下,外键约束阻止了我成功执行此操作。
有什么方法可以在保留外键约束的同时更改数据库列的顺序?我能看到的唯一其他解决方案是删除外键约束,重新创建表并再次添加外键约束。
【问题讨论】:
-
不,没有“神奇”的方法可以做到这一点。如果您在 SSMS 中使用可视化设计器,它基本上会使用新的列顺序重新创建表,复制数据并删除旧表。但是为什么列顺序对您来说如此重要?在关系模型中,您应该不依赖任何特定的顺序 - 顺序应该没有意义,真的
-
我同意,顺序并不重要,数据库仍处于设计阶段,这只是 OCD 的问题 :) 如果这是已经部署在生产环境中的现有数据库,我会将该列添加到表的末尾。只是好奇是否有“魔术”方式。
标签: sql sql-server-2012 ssms