在SQL Server 2005中连接ntext

时间:2009-08-13 14:44:54

标签: sql-server sql-server-2005 ntext

我需要将2个ntext列连接成一个。我无法将它们转换为nchar,因为它们都包含超过4000个字符的字符串。 有没有办法在SQL Server 2005中执行此操作?

3 个答案:

答案 0 :(得分:12)

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

马克

答案 1 :(得分:3)

将它们转换为nvarchar(max)以进行连接。它是ntext的SQL 2005替代品,允许所有常见的nvarchar操作。

答案 2 :(得分:1)

有一种更新ntext列的方法:

DECLARE @memo binary(16)

SELECT 
    @memo = TEXTPTR(field1)
FROM 
    YourTable
WHERE 
    (your condition here)

UPDATETEXT YourTable.field1 @memo NULL 0 'Text to append'

Here是更多信息。