可能重复:
SQL Server 2008 : Cannot Insert new column in the middle position and change data type如何在表中的特定位置添加一列?
你好我使用SQL Server 2008 & 2008 R2我想在一个表中使用alter命令的特定位置添加一列。有没有什么方法可以在特定位置添加一列的关键字?谢谢!在先进的。
可能重复:
SQL Server 2008 : Cannot Insert new column in the middle position and change data type如何在表中的特定位置添加一列?
你好我使用SQL Server 2008 & 2008 R2我想在一个表中使用alter命令的特定位置添加一列。有没有什么方法可以在特定位置添加一列的关键字?谢谢!在先进的。
在SQL服务器很容易..
我认为最好的办法是在表的末尾添加列,并创建一个列..
另一种选择的期望顺序的图。 。
把所有的数据在一个临时表,并重新创建正确的列顺序实际的表,然后从临时表
有没有快捷方式脚本来完成这个插入的数据传回实际的表,最好你可以自动化它下面的脚本基本上将您的新表格架构(将新列放在所需的位置)将旧的中的所有数据插入到新的中,删除旧表格,然后使用存储过程将新表格重命名为旧。
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]';
正如其他人正确地指出,虽然,你列的位置使得任何对数据库没有什么区别,但有一个人的欲望,以实现这一目标的各种个人原因,所以你有几种选择。您可以:
**顺便说一下:**列的顺序在关系模型中是无关紧要的,您不应该在数据库设计中考虑该顺序。 –
@MahmoudGamal - 我想能够做到这一点[出于这里的原因](https://connect.microsoft.com/SQLServer/feedback/details/739788/alter-table-syntax-for-changing-列顺序) –
@MartinSmith - 很好,我投了赞成票。 –