可能重复:
SQL Server 2008 : Cannot Insert new column in the middle position and change data type
您好我正在使用SQL SERVER 2008& 2008 R2我想使用alter命令在特定位置的表中添加一列。是否有任何方式使用关键字我们可以在特定位置添加列?谢谢!在adavanced。
答案 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]';
正如其他人已正确指出的那样,您的列的位置对数据库没有任何影响,但是出于各种个人原因,人们希望实现这一点,因此您有一些选择。你可以: