2013-01-05 29 views

回答

3

簡而言之:這是可能與alter column命令僅當改變的數據類型與新修改的一個兼容。另外,建議與交易完成。

例如:您可以使用下面的腳本將列從varchar(50)更改爲nvarchar(200)。

alter table TableName 
alter column ColumnName nvarchar(200) 

編輯:關於你張貼的錯誤而改變列類型。

**將數據類型nvarchar轉換爲float時出錯。 **

一種方法是創建一個新的列,並轉換都好(轉換和兼容)記錄到新列。之後,您可能想要清理不轉換的壞記錄,刪除舊列並將新添加和填充的列重新命名爲原始名稱。 重要提示:首先使用測試環境進行所有這些操作。通常情況下,玩產品表會變成一個不好的習慣來解決問題。

參考尋找類似SE的帖子更多的討論:

+0

這是不可能的。錯誤消息是,**將數據類型nvarchar轉換爲float時出錯。** –

+0

再次仔細閱讀我的答案,我說如果數據類型兼容。當然,如果你嘗試改變double類型變成int,它將不起作用。 –

+1

感謝兄弟.... –

1

顯然,沒有默認的轉換到新的數據類型。一種解決方案可能是創建具有所需類型的第二列,並編寫您自己的轉換函數。完成後,刪除第一列並用相同的名稱重命名第二列。

0

需要考慮的事項:桌子有多大。然後,您使用alter table語法。我們不知道您想要更改哪種數據類型,因此僅適用於例如

ALTER柱:

Alter Table [yourTable] Alter column [yourColumn] varchar(15) 
  • 您也可以嘗試添加一個新列,然後用你的舊列更新該列。放下舊的專欄。重命名新列。 這是一個安全更好的方式,becasue有時你保存數據可能不能很好地應對新的數據類型...

的支撐柱,考慮的想法:Change column types in a huge tableHow to change column datatype in SQL database without losing data

0

改變該列的數據類型..但一般情況下,sql不允許channge。它會提示你放棄該列。有設置來實現該事情。
轉到工具 - >選項 - >設計器 - >表和數據庫設計師和取消選中防止保存選項。我採取abt sql server 2008 R2。現在你可以很容易地改變數據類型。 enter image description here