我需要将 2 个 ntext 列连接成一个。我无法将它们转换为 nchar,因为两者都包含超过 4000 个字符的字符串。在 SQL Server 2005 中有没有办法做到这一点?
问问题
13916 次
3 回答
12
UPDATE
YourTable
SET
Field = CAST( (CAST(field1 AS NVARCHAR(MAX)) + CAST(field2 AS NVARCHAR(MAX))) AS NTEXT)
WHERE
(your condition here)
但实际上 - SQL Server 2005NTEXT
已被弃用,并且很可能会在 SQL Server 2008 R2 或以后的一个版本中逐步淘汰。NVARCHAR(MAX)
是合乎逻辑的继任者,给你所有NTEXT
曾经给过你的,还有更多!
如果您的字段是NVARCHAR(MAX)
从一开始的,您可以只写:
UPDATE
YourTable
SET
field = field1 + field2
WHERE
(your condition here)
并完成它!
我建议你升级你的表来使用NVARCHAR(MAX)
而不是NTEXT
.
马克
于 2009-08-13T15:08:33.407 回答
3
将它们转换nvarchar(max)
为连接。它是 SQL 2005 的替代品ntext
,允许所有常用nvarchar
操作。
于 2009-08-13T14:49:18.840 回答
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'
这里有更多信息。
于 2011-11-20T23:40:47.860 回答