可能重複:
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 - 很好,我投了贊成票。 –