0

我正在更改Sql Server(2008)數據庫以將現有列類型從UUID更改爲varchar(128) - 列,我們將其稱爲參考最初用於保存ID這個參考項目提供了關於該行數據的更多信息,但現在業務需求已經發生了變化,而我們只是要允許自由形式的文本。沒有針對該列設置外鍵,因此不會有任何中斷關係。Sql Server - 將UniqueIdentifier中的列更改爲varchar(128) - 向後兼容?

我目前最關心的問題是向後兼容現有的存儲過程。不幸的是,這個數據庫非常龐大而且非常陳舊,並且在整個設計中包含了數百個存儲過程。我很擔心做出可能會破壞現有存儲過程的變更。

我知道這是一個加載的問題,但一般,可以UUID列轉換爲VARCHAR列沒有不利影響?看起來像插入UUID列或查詢UUID列的任何現有的存儲過程仍然可以工作,因爲UUID可以表示爲字符串。

回答

1

我試着進行下面的步驟,我沒有看到任何問題,所以我覺得你可以繼續更改列的數據類型:

  1. 創建的表列類型的唯一標識符。
  2. 創建存儲過程以通過NewID()函數向該表中插入一個值。
  3. 執行存儲過程,插入數據時沒有任何問題。
  4. 現在,我將列類型更改爲varchar並再次執行存儲過程。
  5. 程序正常運行沒有任何問題,並插入數據。

那麼,答案是肯定的,你可以改變列數據類型。

+1

感謝Sonam,這對我有很大的幫助。不幸的是,似乎我們有一些實體框架應用程序,它們將列映射爲Guid而不是字符串,因此需要更新和部署我們,但很高興知道至少在事物的sql方面應該在一定程度上工作。 – matt

相關問題