我需要将2个ntext列连接成一个。我无法将它们转换为nchar,因为它们都包含超过4000个字符的字符串。 有没有办法在SQL Server 2005中执行此操作?
答案 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是更多信息。