9

2つのntext列を1つに連結する必要があります。それらをncharに変換できません。どちらにも、4000文字より長い文字列が含まれているためです。SQL Server 2005でこれを行う方法はありますか?

4

3 に答える 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 2005ではNTEXT非推奨になり、SQL Server2008R2または1つのリリース以降で段階的に廃止される可能性があります。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)連結用に変換します。これはSQL2005に代わるもので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 に答える