sql server中的重新排列列顺序

sql server中的重新排列列顺序,sql,sql-server,sql-server-2005,Sql,Sql Server,Sql Server 2005,如何在sql server中重新排列列顺序 现在,当我右键单击并获取属性时,我的列显示如下: 在SQLServer2005中 colA1 colA2 colA3 colA4 colB1 colB2 colB3 colA5 colA6 因为我知道这些列(colA5、colA6)是新创建的 怎么做到这样 colA1 colA2 colA3 colA4 colA5 colA6 colB1 colB2 colB3 您可以在designer(SSMS)中轻松地完成这项工作—只需将列拖动到正确的顺序,然

如何在sql server中重新排列列顺序

现在,当我右键单击并获取属性时,我的列显示如下: 在SQLServer2005中

colA1
colA2
colA3
colA4
colB1
colB2
colB3
colA5
colA6
因为我知道这些列(colA5、colA6)是新创建的

怎么做到这样

colA1
colA2
colA3
colA4
colA5
colA6
colB1
colB2
colB3

您可以在designer(SSMS)中轻松地完成这项工作—只需将列拖动到正确的顺序,然后保存—在后台它将编写脚本并重新创建表


但你为什么要这么做?列的顺序除了在设计器中使事物看起来漂亮之外没有其他影响

您可以使用基于表的视图来获得所需的输出吗?这是我的第一反应。

右键单击表格,选择“设计”,然后向上或向下拖动列。

移动列涉及大量DDL,实际上什么都不做

如果表当前为空,则可以。。。但是如果它有大量的数据,这可能是非常痛苦的。如果该表当前被复制,情况会更糟

依我看,你应该在
SELECT
语句中处理这个问题:

SELECT colA1, colA2, colA3, colA4, colA5, colA6, colB1, colB2, colB3
FROM   TheTable

“列的顺序除了在设计者中使事物看起来漂亮之外没有任何影响。”——这可能对计算机没有影响,但我们这些可怜的人喜欢整洁和逻辑顺序,非常感谢。在任何一种大小合适的数据库上实施这一点都是一个问题——如果有人开始使用designer在live DB中重新排序列,而他们不了解SSM的封面下发生了什么,那么当表在重新创建时被锁定时,他们会大吃一惊。请注意Mar Gravel对这个问题的评论,表在哪里复制是另一个原因…@Chris W:说得好!在SSMS中对列重新排序会在幕后删除并重新创建表。如果您正处于数据库的设计阶段,没有问题,但如果它是一个包含数百万条记录的活动表,您可能会遇到麻烦。最好的办法是不要这样做-不应依赖或更改列的顺序;使用SQL进行防御性编程的基本规则。