2012-06-20 74 views

回答

23

按照下面的步驟: -

1)。首先從表中刪除舊數據。 2)。使用ALTER TABLE dbo.tbltest
ALTER COLUMN ID varchar(200)

3)。現在再次 ALTER TABLE dbo.tbltest
ALTER COLUMN ID uniqueidentifier

需要明確的是,你不能從數字轉換柱直接UNIQUEIDENTIFIER,

,但你可以轉換數字 - > VARCHAR - >唯一標識符。

4

你需要用第一添加列(可能默認或可爲空,以便可以將列成功添加到具有現有數據的行中),將其更新爲您想要或需要的值,更改任何鍵(如果它是主鍵,則將其更改爲新列,然後更改任何外鍵這張桌子的鑰匙),然後刪除舊列並根據需要更改新列(例如,設置身份種子,刪除空值等)。

+0

我已經刪除了表中的所有數據。 – Visions

+0

我明白了。在這種情況下,你也可以先將其修改爲'binary(16)',然後修改爲'bigint' - 未經測試,但據我所知,只要沒有數據在過程中被截斷,SQL Server就允許這樣做。 – Lucero

3

注意使用實體框架的人:
顯然,如果你有一個大的數據庫,複雜的人際關係,刪除所有關係和ID列,並重新添加它們是一個巨大的考驗。

這是更容易更新生成的模型(.EDMX)。

是的,Visual Studio允許您在不抱怨的情況下更新數據類型。事實上,當您保存.edmx文件時,關係將被驗證;您可能錯過的任何字段都會顯示爲錯誤。

完成後,可以從模型中重新生成數據庫。繁榮,完成。

0

如果辛格的回答不工作,那麼你可能不得不放棄該表並重新創建它。

相關問題