2012-04-17 78 views
6

我知道您可以進入SQL Server Management Studios中的表的設計視圖,並按列出現在設計視圖中的順序對列進行重新排序,但這對於SQL Azure作爲選項不可行被禁用。 有沒有辦法修改SQL Azure表格,這樣你就可以重新排列它們在列表中出現的設計視圖的順序?通過SSMS訂購SQL Azure表列

我在過去的幾個月裏一直在運行一些數據庫升級來支持新的需求,並且想重新排列列出現在設計視圖中的方式,以便它們更易於閱讀,即它們以主鍵,其次是外鍵,然後是普通列,最後是添加的,由字段修改。它純粹是爲了使表格更具可讀性,因爲我隨着時間的推移管理它們。

回答

0

只需對錶格運行腳本。它有點僞代碼,但你應該明白。

CREATE TABLE TableWithDesiredOrder(PK,FK1,FK2,COL1,COL2) 

INSERT INTO TableWithDesiredOrder(PK,FK1,FK2,COL1,COL2....) 
SELECT PK,FK1,FK2,COL1,COL2.... FROM OriginalTable 

DROP TABLE OriginalTable 

最後重命名錶

sp_Rename TableWithDesiredOrder, OriginalTable 
+1

嗨大衛,謝謝你,但我希望有一個不同的選項可用,這需要創建複製刪除步驟,還需要FK sql書面。如果沒有可行的做法,那就夠公平的了。我希望可能會有。 – Bern 2012-04-17 13:47:17

+1

+1給David的回答。我不認爲有任何其他選項可以對列進行重新排序。當您通過SSMS設計視圖對列進行重新排序時,在單擊保存之前,可以查看SSMS爲您生成的基礎腳本,方法是右鍵單擊並生成腳本菜單項。您可以看到SSMS以相同的方式使用(create-copy-drop),但它也處理FK等。也許您可以在運行腳本之前關閉FK檢查,然後打開它。 – 2012-04-18 03:08:33

+0

感謝Shuan,很好的回答。 – Bern 2012-04-18 19:42:43

0

只是另一種選擇:我用SQL三角洲傳播從開發我的數據庫的變化分貝高達Azure的分貝。所以在這種情況下,我只需使用SSMS GUI在本地更改col命令,而SQL Delta將爲我執行createnew> copytonew> dropold以及其他本地更改。 (在項目選項中,我設置了保留列順序=是。)