sql server中的重新排列列顺序
如何在sql server中重新排列列顺序 现在,当我右键单击并获取属性时,我的列显示如下: 在SQLServer2005中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)中轻松地完成这项工作—只需将列拖动到正确的顺序,然
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进行防御性编程的基本规则。