Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

nvarchar(max) wird immer noch abgeschnitten

Das Problem scheint mit der SET-Anweisung zusammenzuhängen. Ich denke, der Ausdruck darf nicht größer als 4.000 Byte sein. Es müssen keine Einstellungen geändert werden, wenn Sie nur versuchen, einen dynamisch generierten Kontoauszug mit mehr als 4.000 Zeichen zuzuweisen. Was Sie tun müssen, ist, Ihre Aufgabe aufzuteilen. Wenn Ihre Anweisung 6.000 Zeichen lang ist, finden Sie einen logischen Unterbrechungspunkt und verketten Sie dann die zweite Hälfte mit derselben Variablen. Zum Beispiel:

SET @Query = 'SELECT ....' [Up To 4,000 characters, then rest of statement as below]

SET @Query = @Query + [rest of statement]

Führen Sie nun Ihre Abfrage wie gewohnt aus, d. h. EXEC ( @Query )