Sql-Server-2008

添加新列並定義其在表中的位置

  • January 28, 2015

我有 5 列的表 A:

TableA
--
Name
Tel
Email
Address

我想在電話和電子郵件之間添加一個新列(移動):

TableA
--
Name
Tel
Mobile
Email
Address

如果我使用

ALTER TABLE TableA
ADD COLUMN Mobile INT NOT NULL

移動列被添加到表的末尾。

有沒有辦法在不刪除表並將數據移動到新表的情況下實現這一點?

不,重建表是唯一的方法。請參閱此連接項目進行確認

如果您相信有點錯誤的表格設計器,您可以使用 SSMS 為您編寫腳本。

除此之外,您可以聲明具有所需列順序的視圖,作為將邏輯相關的列組合在一起的一種方式。

如果您看到“不允許保存更改”。在使用 SQL Server 2005 或更高版本的設計器中添加新列後出現消息,您需要選擇工具 -> 選項,選擇設計器,然後取消選擇表選項下名為“防止保存需要重新創建表的更改”的框。完成此步驟後,您應該能夠將更改保存在您想要的位置。

奇怪的是,MySQL 允許您使用 SQL 在任何地方添加列,但使用 SQL Server,您只能使用 Designer 來執行此操作。嗯。好像某處一定有隱藏的魔法指令!;-)

引用自:https://dba.stackexchange.com/questions/19536