Ich habe eine Tabelle mit einer NTEXTSpalte namens comments. Ich habe eine zweite Zeichenfolge, nennen wir sie anothercomment(a varchar), die commentsnach dem Wort in eine bestimmte Zeichenfolge eingefügt werden muss UPDATEHERE.
Beim Casting wird nvarchar(max)die commentsZeichenfolge 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 testein 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 ntextein 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.