2016-02-28 64 views
0

我有一個由Azure SQL數據庫支持的現有Azure Web應用程序。我的計劃是在我正在構建的新移動應用程序中使用這個相同的數據庫,但是我做出了一項最初的設計決定,它不適用於Azure移動服務。我在現有的數據庫整數ID中創建了密鑰,並且最近要使用Mobile服務中的數據庫,它需要ID爲String GUID的ID。我有超過200個用戶輸入到我現有的數據庫中,其他相關表都與這些ID綁定。更改Azure移動服務的密鑰和數據

我的問題是,是否有一種功能或方法可以將所有這些整數鍵轉換爲字符串鍵而不會丟失所有數據並要求每個人手動進入並重新設置? 我的數據庫知識是有限的,但從我見過的所有數據庫知識來看,Azure移動服務要求密鑰現在是字符串,並且沒有解決的辦法。

任何幫助非常感謝,謝謝!

回答

0

更改SQL列的數據類型,只是簡單地運行下面的命令:

ALTER TABLE table_name 
ALTER COLUMN column_name column_type 

例如,假設你的表名是表1和列被稱爲鍵,

ALTER TABLE table1 
ALTER COLUMN keys varchar(10) 
+0

我試着運行這個命令,但是它不起作用,因爲這些鍵被模式中的其他表引用。是否有一種方法可以級聯應用此更改? – RunFranks525

+0

@ user3286257所以你的情況是,表A有一個主鍵A,它被表B作爲外鍵引用。你想改變A的數據類型並反映在表B中,對嗎?我不認爲有一個簡單的方法來做到這一點。您需要在表A和表B中添加一個新的varchar列,放棄原始外鍵和主鍵,然後重置兩個新添加的鍵之間的相互關係,這顯然並不簡單。檢查此線程的詳細信息http://stackoverflow.com/questions/9023259/changing-datatype-of-a-column-which-is-referenced-by-other-tables – forester123