Sql 如何将int转换为ntext
我需要将Sql 如何将int转换为ntext,sql,tsql,sql-server-2008,Sql,Tsql,Sql Server 2008,我需要将int字段(如1005转换为ntext类似的Alarm1005),但是CAST(ID为ntext)不起作用,那么如何将(CAST)int转换为ntext?转换(ID为nvarchar(10))为ntext) 编辑 正如gbn公正地暗示的那样,nvarchar(max)实际上是存储大型字符串数据更可取的类型 原因有二: 与那些可以处理ntext的相比,您在nvarchar上有很多这样的工作 不推荐使用ntext、text和image类型 还有一个很小的原因是,你不必重复施法。它将像CAST
int
字段(如1005
转换为ntext
类似的Alarm1005
),但是CAST(ID为ntext)
不起作用,那么如何将(CAST)int
转换为ntext
?转换(ID为nvarchar(10))为ntext)
编辑
正如gbn公正地暗示的那样,nvarchar(max)
实际上是存储大型字符串数据更可取的类型
原因有二:
ntext
的相比,您在nvarchar
上有很多这样的工作ntext
、text
和image
类型还有一个很小的原因是,你不必重复施法。它将像
CAST(ID为nvarchar(10))
或CAST(ID为nvarchar(max))
一样简单,不要使用NTEXT
-它已被弃用(从SQL Server 2005开始),应该避免使用。使用NVARCHAR(MAX)
instead我刚刚发现了这个问题,因为我有相同的问题。在我的例子中,我使用的是具有NTEXT列的SQLServer2000DB。除了尝试铸造或转化,我无法改变环境。
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