2011-03-17 69 views
1

我需要int字段轉換像1005ntext一樣Alarm1005,但CAST(ID as ntext)不工作,所以我怎麼可以轉換(CAST)intntext如何轉換(CAST)INT爲ntext

+1

不要使用'NTEXT' - 它已被棄用(從SQL Server 2005起),應該避免。使用'NVARCHAR(MAX)'而不是 – 2011-03-17 09:04:54

+0

我剛剛發現這個問題,因爲我有相同的問題。在我的情況下,我正在使用具有NTEXT列的SQL Server 2000數據庫。除了嘗試轉換或轉換外,我無法改變其他情況。 – kd7iwp 2012-06-04 20:20:41

回答

7

CAST(CAST(ID as nvarchar(10)) as ntext)

EDIT

作爲GBN已經暗示公正,nvarchar(max)實際上是用於存儲大字符串數據一個更優選的類型。

兩個原因:

  1. 你有足夠的functionsnvarchar工作相比,那些能夠處理ntext
  2. 類型ntext,textimageofficially已棄用。

而另外一個小原因是,你不必雙重演員。這將如同CAST(ID AS nvarchar(10))CAST(ID AS nvarchar(max))一樣簡單。

1
ALTER TABLE MyTable ADD new_column NTEXT 
UPDATE MyTable SET new_column = cast(old_column as nvarchar(16)) 
ALTER TABLE MyTable DROP COLUMN old_column