2013-03-06 115 views
0

我想構建一個工具,用SQL Sever 2008 R2中的數據對已存在的表的字段進行重新排序。另外我想創建一個邏輯來在任何特定位置添加一列。在Mysql或firebird中,他們有選項和TSQL查詢來做到這一點。任何機構請分享我們在SQL Sever 2008 R2中是否有這些選項。如果有任何智能邏輯可用的手段分享給我。提前致謝。如何在SQL Server 2008 R2的特定位置重新排序和添加列?

+4

唯一的方法是通過創建一個新表並重新導入所有數據(如SSMS在後臺執行)來重建表。 SQL Server中沒有語法來更改或手動指定列的序號位置。 – 2013-03-06 12:15:18

+0

謝謝@馬丁史密斯先生,現在我只是在你說的那條路上工作。我只是想澄清一下,還有哪些方法可以做到。 – 2013-03-06 13:35:18

+0

如果您認爲這個問題在SQL Server 2008 R2中最受歡迎,請在上面標記它。 – 2013-03-06 13:37:02

回答

2

重新排序現有表的列將是一個成本高昂的過程。表格必須從頭開始重建。 SQL通過使用新訂單創建表的副本,然後將現有數據插入該表來爲您執行此操作。一旦完成,初始表格將被刪除,新的表格將恢復原狀。

更好的解決方案是使用VIEW。他們可以隨意更改。

+0

感謝Mr @ Gizmo.Drop並創建一個新表可能會導致死亡數據庫創建db我認爲。有沒有其他聰明的方法來做到這一點。 – 2013-03-07 08:36:02

+1

我會建議你不要刪除並重新創建表格,除非絕對必要。如果您使用視圖,則可以使用ALTER VIEW語句對列進行重新排序而不影響性能。請記住,如果您的開發人員使用序號字段位置(例如,調用COLUMN 4而不是LAST_NAME),重新排序列可能會產生其他影響。如果您的開發人員這樣做,COLUMN 4可能會也可能不會總是LAST_NAME。 – PseudoToad 2013-03-07 15:02:31