我需要连接2个NTEXT列进一个。 我无法将它们转换为nchar,导致两个字符串包含超过4000个字符长。 有没有办法在SQL Server 2005中做到这一点?
Answer 1:
UPDATE
YourTable
SET
Field = CAST( (CAST(field1 AS NVARCHAR(MAX)) + CAST(field2 AS NVARCHAR(MAX))) AS NTEXT)
WHERE
(your condition here)
不过说真的-与SQL Server 2005, NTEXT
变得过时,将最有可能在SQL Server 2008 R2或一个释放后逐步被淘汰。 NVARCHAR(MAX)
是合乎逻辑的继任者,给你所有NTEXT
给过你,和更多!
如果你的领域将是NVARCHAR(MAX)
从一开始,你可以这样写:
UPDATE
YourTable
SET
field = field1 + field2
WHERE
(your condition here)
并用它做!
我建议你升级你的表使用NVARCHAR(MAX)
而不是NTEXT
。
渣
Answer 2:
将它们转换为nvarchar(max)
的concatentation。 这是SQL 2005的替代ntext
,并允许所有常见nvarchar
操作。
Answer 3:
有一种方法来更新ntext列:
DECLARE @memo binary(16)
SELECT
@memo = TEXTPTR(field1)
FROM
YourTable
WHERE
(your condition here)
UPDATETEXT YourTable.field1 @memo NULL 0 'Text to append'
下面是详细信息。
文章来源: Concatenate ntext in SQL Server 2005