Heim >Datenbank >MySQL-Tutorial >Warum wird meine Zeichenfolge „nvarchar(max)' in SQL Server 2005 auf 4000 Zeichen gekürzt?
Kürzung der Nvarchar(Max)-Zeichenfolge in SS 2005
Warum ruft eine als nvarchar(max) deklarierte Zeichenfolge in TSQL nur 4000 Zeichen ab? im SS 2005?
Lösung
Trotz der Deklaration von @SQL1 als nvarchar(max) wird zunächst eine Sammlung kurzer Zeichenfolgen (@alldate, @alldateprevweek) mit jeweils weniger als 4000 gespeichert Charaktere. Der String-Verkettungsprozess behandelt diese als Nicht-Max-Strings und füllt anschließend @SQL1 mit maximal 4000 Zeichen.
Um dieses Problem zu beheben, stellen Sie sicher, dass die gesamte rechte Seite der Zuweisung zu @SQL1 nvarchar ist (maximal). Initialisieren Sie beispielsweise @SQL1 als leere Zeichenfolge, bevor Sie die Konstante nvarchar(max) verketten:
SET @SQL1 = '' SET @SQL1 = @SQL1 + 'SELECT DISTINCT Venue...
Der Zuweisungsoperator hat die niedrigste Priorität, ähnlich der Ganzzahldivision in anderen Sprachen. Daher wird die Datentyppriorität durch Zuweisung und nicht durch Verkettung bestimmt.
Das obige ist der detaillierte Inhalt vonWarum wird meine Zeichenfolge „nvarchar(max)' in SQL Server 2005 auf 4000 Zeichen gekürzt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!