2009-01-21 9 views
20

Was ist die beste Methode zum Anfügen an ein Textfeld mit T-SQL in Sql Server 2005?Wie an ein Textfeld in t-SQL SQLServer 2005 angefügt werden

Mit einem Varchar würde ich das tun.

update tablename set fieldname = fieldname + 'appended string' 

Aber das funktioniert nicht mit einem Textfeld.

+0

Von der Spitze meines Kopfes würde ich sagen, dass sollte funktionieren. Das Problem ist wahrscheinlich ein Konvertierungs/Casting-Problem. Versuchen Sie Feldname = Feldname + N'apped Zeichenfolge ' – Craig

+0

Leider hat das nicht funktioniert. Ich habe 'Die Datentypen text und nvarchar sind im add-Operator inkompatibel.' Trotzdem danke. –

Antwort

33

Versuchen Sie, diese veraltet:

update 
    tablename 
set 
    fieldname = convert(nvarchar(max),fieldname) + 'appended string' 
+0

Danke Bravax, das war perfekt! –

+1

Nun, zumindest wusste ich, dass es sich um einen Konvertierungsfehler handelte. :) Danke Bravax. – Craig

+2

Wenn Feldname Null ist, wird dies nicht funktionieren. anstelle von Feldname versuchen Sie COALESCE (Feldname, '') – nuander

6

This should work (link)

von Link kopiert:

DECLARE @ptrval binary(16) 
SELECT @ptrval = TEXTPTR(ntextThing) 
FROM item 
WHERE id =1 
UPDATETEXT table.ntextthing @ptrval NULL 0 '!' 
GO 
+0

Ich wünschte, es gäbe einen einfacheren Weg, aber danke für den Link. –

3

2005 Sie varchar (max) oder nvarchar (max) diese Spalten arbeiten mit normalen varchar Funktionen verwenden sollten. Text und Ntext wurden

0

die maximale Länge für varchar (max) ist 2,147,483,647 Zeichen. Dies entspricht dem Datentyp "Text".

Welcher Text auch immer halten könnte, kann dies halten, so dass Sie sich keine Sorgen machen müssen, dass Sie keinen Platz mehr haben, indem Sie zu VARCHAR (MAX) wechseln.

danke.

Verwandte Themen