2012-05-10 123 views
1

我有一個生產數據庫,需要在列設計中將varchar從varchar更改爲nvarchar。我知道我可以強制它重新創建設計並保存它,但這樣做是個好主意嗎?在SQL Server中更改數據庫列設計

什麼是結果和其他建議?

更新:它的SQL Server 2008中

+0

多大表丟棄_new重命名新表重命名舊錶?數據庫是否在不斷使用或者是否有超時的時間段,可以在不影響用戶的情況下運行更新? – GarethD

回答

0

@Ye妙昂,你可以直接從VARCHAR數據類型更改爲nvarchar來。無需重新創建結構。請注意列的大小,因爲nvarchar將數據保存在unicode中,它將幾乎是varchar的兩倍。

0

我會建議從生產數據庫創建一個測試數據庫,並運行腳本來更新字段類型。

0

您應該遵循以下步驟:

  1. 設計視圖中打開表。
  2. 現在您在設計時將數據類型從varchar更改爲NVarchar,而不保存它。
  3. 現在您按下標題欄左上方的「更改生成腳本」。
  4. 保存腳本並執行它。

這是生產服務器避免數據丟失的最節省方案。

0

如果您將使用Visual Studio數據庫版本來生成部署腳本,它將自動爲您創建。但是,它在後面做的是如下
1)用新定義創建表。只需使用{TableName} _new命名您的表。
2)在舊錶上創建索引
3)創建舊錶上的觸發器(並禁用它們)
4)將數據從舊錶複製到新表。
5)通過附加_old表名
6)從名字