在 SQL Server 2005 中连接 ntext

发布于 2024-08-01 13:23:18 字数 104 浏览 5 评论 0原文

我需要将 2 个 ntext 列连接成一列。 我无法将它们转换为 nchar,因为两者都包含长度超过 4000 个字符的字符串。 有没有办法在 SQL Server 2005 中做到这一点?

I need to concatenate 2 ntext columns into one. I can't convert them to nchar, cause both contains strings longer than 4000 chars.
Is there a way to do this in SQL Server 2005?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

北方的巷 2024-08-08 13:23:18

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

Convert them to nvarchar(max) for the concatentation. It's the SQL 2005 replacement for ntext and allows all the usual nvarchar operations.

云之铃。 2024-08-08 13:23:18

有一种方法可以更新 ntext 列:

DECLARE @memo binary(16)

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

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

这里有更多信息。

There is a way to update ntext column:

DECLARE @memo binary(16)

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

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

Here are more information.

那一片橙海, 2024-08-08 13:23:18
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

马克

UPDATE 
    YourTable
SET 
    Field = CAST( (CAST(field1 AS NVARCHAR(MAX)) + CAST(field2 AS NVARCHAR(MAX))) AS NTEXT)
WHERE 
    (your condition here)

But really - with SQL Server 2005, NTEXT becomes deprecated and will most likely be phased out in SQL Server 2008 R2 or one release later. NVARCHAR(MAX) is the logical successor, giving you all NTEXT ever gave you, and a lot more!

If your fields would be NVARCHAR(MAX) from the beginning, you could just write:

UPDATE 
    YourTable
SET 
    field = field1 + field2
WHERE 
    (your condition here)

and be done with it!

I'd suggest you upgrade your tables to use NVARCHAR(MAX) instead of NTEXT.

Marc

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文