串联NTEXT在SQL Server 2005(Concatenate ntext in SQL S

2019-09-23 11:23发布

我需要连接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