我想更改sql server中表中列的數據類型。我用下面的語句:從bigint中將列的數據類型更改爲uniqueidentifier
ALTER TABLE dbo.tbltest
ALTER COLUMN ID uniqueidentifier
但它引發錯誤
操作數類型衝突:BIGINT是唯一標識符不兼容
我想更改sql server中表中列的數據類型。我用下面的語句:從bigint中將列的數據類型更改爲uniqueidentifier
ALTER TABLE dbo.tbltest
ALTER COLUMN ID uniqueidentifier
但它引發錯誤
操作數類型衝突:BIGINT是唯一標識符不兼容
按照下面的步驟: -
1)。首先從表中刪除舊數據。 2)。使用ALTER TABLE dbo.tbltest
ALTER COLUMN ID varchar(200)
3)。現在再次 ALTER TABLE dbo.tbltest
ALTER COLUMN ID uniqueidentifier
需要明確的是,你不能從數字轉換柱直接UNIQUEIDENTIFIER,
,但你可以轉換數字 - > VARCHAR - >唯一標識符。
你需要用第一添加列(可能默認或可爲空,以便可以將列成功添加到具有現有數據的行中),將其更新爲您想要或需要的值,更改任何鍵(如果它是主鍵,則將其更改爲新列,然後更改任何外鍵這張桌子的鑰匙),然後刪除舊列並根據需要更改新列(例如,設置身份種子,刪除空值等)。
注意使用實體框架的人:
顯然,如果你有一個大的數據庫,複雜的人際關係,刪除所有關係和ID列,並重新添加它們是一個巨大的考驗。
這是太更容易更新生成的模型(.EDMX)。
是的,Visual Studio允許您在不抱怨的情況下更新數據類型。事實上,當您保存.edmx文件時,關係將被驗證;您可能錯過的任何字段都會顯示爲錯誤。
完成後,可以從模型中重新生成數據庫。繁榮,完成。
如果辛格的回答不工作,那麼你可能不得不放棄該表並重新創建它。
我已經刪除了表中的所有數據。 – Visions
我明白了。在這種情況下,你也可以先將其修改爲'binary(16)',然後修改爲'bigint' - 未經測試,但據我所知,只要沒有數據在過程中被截斷,SQL Server就允許這樣做。 – Lucero