如何在表格中的特定位置添加列?

时间:2012-10-01 10:35:30

标签: sql-server-2008 sql-server-2008-r2

  

可能重复:
  SQL Server 2008 : Cannot Insert new column in the middle position and change data type

您好我正在使用SQL SERVER 2008& 2008 R2我想使用alter命令在特定位置的表中添加一列。是否有任何方式使用关键字我们可以在特定位置添加列?谢谢!在adavanced。

2 个答案:

答案 0 :(得分:3)

在sql server中不是很容易..

我认为最好的方法是在表格的末尾添加列,并创建一个具有所需列顺序的视图。

另一种选择..

将所有数据放入临时表中并使用正确的列顺序重新创建实际表,然后将数据从临时表中插回到实际表中

答案 1 :(得分:3)

没有快速的方法在脚本中执行此操作,最多可以使用以下脚本自动执行此操作,该脚本基本上采用新的表架构(将新列放在所需位置),插入来自旧的所有数据进入,删除旧表,然后使用存储过程将新表重命名为旧表。

create table [NewTable]
(
    [old_column_1] int
    ,[new_column_1] varchar(max) -- new col at location
    ,[old_column_2] int
);

insert into [NewTable] ( [old_column_1], [old_column_2] ) 
select [old_column_1], [old_column_2] from [OldTable] (nolock);

drop table [OldTable];

sp_rename '[NewTable]', '[OldTable]';

正如其他人已正确指出的那样,您的列的位置对数据库没有任何影响,但是出于各种个人原因,人们希望实现这一点,因此您有一些选择。你可以:

  1. 使用上面的脚本来处理该过程。
  2. 允许将列附加到表的末尾并控制查询中的顺序。
  3. 基本上是对选项2的扩展,使用视图来控制演示文稿中的顺序。
  4. 在SQL Server Management Studio中使用GUI - 将表格显示为网格时,可以将列拖放到所需位置。