2011-03-17 67 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