SQL Query在SQL Server 2005中的现有列之后添加新列

Aay*_*shi 46 sql sql-server sql-server-2005

我需要一个SQL查询,它在现有列之后添加一个新列,因此该列将按特定顺序添加.

如果有任何ALTER疑问,请建议我.

Bra*_*tie 41

Microsoft SQL(AFAIK)不允许您更改表并在特定列之后添加列.您最好的选择是使用Sql Server Management Studio,或者使用删除和重新添加表,或创建新表并手动移动数据.两者都不是很优雅.

然而, MySQL确实:

ALTER TABLE mytable
ADD COLUMN  new_column <type>
AFTER       existing_column
Run Code Online (Sandbox Code Playgroud)


gbn*_*gbn 21

ALTER不会这样做,因为列顺序对于存储或查询无关紧要

如果是SQL Server,则必须使用SSMS表设计器来排列列,然后可以生成一个删除并重新创建表的脚本

编辑2013年6月

链接到我的答案:订购SQL Server列时的性能/空间影响?

  • 在处理批量插入时,列顺序**确实很重要**. (13认同)
  • 导出`SELECT*FROM some_table``的结果时,列的顺序很重要.OP没有说明为什么这个问题对他或她很重要,所以我认为这不是一个完美的答案. (2认同)

ila*_*ans 15

这是可能的.

首先,只需按常规方式添加每列(作为最后一列).

其次,在SQL Server Management StudioGet into Tools => Options中.

在"设计器"选项卡=>"表和数据库设计器"菜单下,取消选中"禁止保存需要重新创建表的更改"选项.

然后,右键单击表格并选择"设计".在"设计"模式下,只需拖动列即可对其进行排序.

别忘了保存.

  • OP要求SQL查询来做到这一点.您的建议是使用Management Studio. (11认同)
  • +1这有助于我通过关闭"防止保存"选项来完成它.因此不需要查询(无论如何都不可能). (4认同)
  • 谢谢。你帮我解决了使用设计器更新表格的问题 (2认同)