【问题标题】:Change the order of database columns更改数据库列的顺序
【发布时间】:2011-04-06 11:38:00
【问题描述】:

我想更改列的顺序,例如name 是我表的第一列,表中还有 10 个其他列我想在 name 列之后的第二个位置插入一个新列。 这怎么可能?

【问题讨论】:

  • 如果不重建表,这是不可能的。

标签: sql database sql-server-2005 tsql


【解决方案1】:

1 - 正如 Martin 正确指出的那样,不重建表是不可能的。

2 - 正如 n8wrl 指出的那样,在 SELECT 语句中指定您想要的字段和顺序是一个很好的做法。

3 - 如果您真的需要字段的固定顺序,可以创建一个视图,按您想要的顺序选择您想要的字段。

【讨论】:

    【解决方案2】:

    就像表格中的行一样,列的顺序没有意义。事实上,最好在您的选择语句中指定您希望列的顺序,而不是使用 select *,这样您就可以通过相应地编写您的 SELECT 语句来“插入”新列。

    【讨论】:

    • +1 这个答案可能应该解释这是不可能的,而不是仅仅告诉 OP 他们不应该这样做!
    【解决方案3】:

    可以更改顺序。在某些情况下,它真的很重要。有亲身经历。 无论如何..这个查询工作正常。
    ALTER TABLE user MODIFY Name VARCHAR(150) AFTER address;

    【讨论】:

      【解决方案4】:

      您可以通过以下步骤实现此目的:

      1. 删除原表的所有外键和主键。
      2. 重命名原始表。
      3. 使用 CTAS,按照您想要的顺序创建原始表。
      4. 删除旧表。
      5. 将所有约束应用回原始表。

      【讨论】:

        猜你喜欢
        • 2019-08-27
        • 1970-01-01
        • 2012-01-16
        • 2013-02-25
        • 1970-01-01
        • 1970-01-01
        • 2010-10-15
        • 1970-01-01
        相关资源
        最近更新 更多