如何在表格的特定位置添加一列? [复制]
Posted
技术标签:
【中文标题】如何在表格的特定位置添加一列? [复制]【英文标题】:how to add a column at a specific position in a table? [duplicate] 【发布时间】:2012-10-01 10:35:30 【问题描述】:可能重复:SQL Server 2008 : Cannot Insert new column in the middle position and change data type
您好,我正在使用 SQL SERVER 2008 和 2008 R2,我想使用 alter 命令在表中的特定位置添加一列。有什么方法可以使用关键字在特定位置添加列吗?谢谢!在高级。
【问题讨论】:
顺便说一句:列的顺序在关系模型中无关紧要,您不应该在数据库设计中考虑该顺序。 @MahmoudGamal - 我希望能够做到这一点for the reasons here @MartinSmith - 很好,我投了赞成票。 【参考方案1】:在sql server中不是很容易..
我认为最好的方法是在表的末尾添加列并创建具有所需列顺序的视图..
另一种选择..
将所有数据放入临时表中,并以正确的列顺序重新创建实际表,然后将数据从临时表中插入到实际表中
【讨论】:
【参考方案2】:在脚本中没有快速的方法可以做到这一点,充其量您可以使用以下脚本自动化它,该脚本基本上采用您的新表架构(新列位于所需位置),插入 old 中的所有数据 进入 new,删除旧表,然后使用存储过程将新表重命名为旧表。
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]';
正如其他人正确指出的那样,列的位置对数据库没有任何影响,但是出于各种个人原因,人类希望实现这一点,因此您有几个选择。您可以:
-
使用上面的脚本来处理这个过程。
允许将列附加到表的末尾并控制查询中的顺序。
基本上是选项 2 的扩展,使用视图来控制演示文稿中的顺序。
使用 SQL Server Management Studio 中的 GUI - 在将表格显示为网格时,您可以将列拖放到所需位置。
【讨论】:
以上是关于如何在表格的特定位置添加一列? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
如何在一个DataGridView中的一列添加DateTimePicker控件 C#