Ich habe eine Tabelle mit einer NTEXT
Spalte namens comments
. Ich habe eine zweite Zeichenfolge, nennen wir sie anothercomment
(a varchar
), die comments
nach dem Wort in eine bestimmte Zeichenfolge eingefügt werden muss UPDATEHERE
.
Beim Casting wird nvarchar(max)
die comments
Zeichenfolge abgeschnitten , sodass ich keine ähnlichen Zeichen verwenden kann CHARINDEX()
( Msg 8152, Level 16, State 10, Line 2
String or binary data would be truncated.)
. Ich habe verwendet datalength()
, um zu überprüfen, ob einige tausend Spalten mit mehr als 8000 Zeichen vorhanden sind.
Ein Beispiel für das, was ich erreichen möchte (wenn auch mit viel längeren Saiten):
Bemerkungen -
This is a test UPDATEHERE This is the end of the test
ein weiterer Kommentar -
. This is inserted.
Resultierende Zeichenfolge -
This is a test UPDATEHERE. This is inserted. This is the end of the test
Mir ist klar, dass dies bei einem normalen varchar()
/ trivial ist nvarchar()
, aber ntext
ein kompletter und völliger Albtraum ist, mit dem man arbeiten muss. Mir ist klar, dass es sich um einen veralteten Datentyp handelt, aber ich habe die betreffende Anwendung nicht geschrieben.
quelle