Heim > Datenbank > MySQL-Tutorial > Warum wird Nvarchar(Max) in T-SQL auf 4000 Zeichen gekürzt?

Warum wird Nvarchar(Max) in T-SQL auf 4000 Zeichen gekürzt?

Mary-Kate Olsen
Freigeben: 2024-12-31 18:12:10
Original
923 Leute haben es durchsucht

Why Does Nvarchar(Max) in T-SQL Truncate to 4000 Characters?

Kürzung in Nvarchar (Max) auf 4000 Zeichen in TSQL

Dieses Problem tritt auf, wenn versucht wird, große Textblöcke in einer deklarierten Variablen zu speichern als Nvarchar(Max) in TSQL. Überraschenderweise fasst die Variable nur 4000 Zeichen statt der erwarteten 8000.

Die Erklärung liegt in der Art der Datentypzuweisung in TSQL. Durch die Deklaration einer Variablen als Nvarchar(Max) wird nicht automatisch das Max-Attribut zugewiesen. Stattdessen verhält sich die Variable zunächst wie eine Sammlung kleinerer Zeichenfolgenkonstanten (weniger als 4000 Zeichen). Wenn diese Konstanten miteinander verkettet werden, hat die resultierende @SQL1-Variable immer noch eine Zeichenbeschränkung von 4000.

Um dieses Problem zu beheben, stellen Sie sicher, dass die rechte Seite der Zuweisungsanweisung für @SQL1 bereits ein Nvarchar( Max) variabel. Dadurch wird sichergestellt, dass der resultierende Wert mit der maximal zulässigen Zeichenbeschränkung gespeichert wird.

Zum Beispiel weist der folgende Code den Datentyp Nvarchar(Max) von Anfang an korrekt @SQL1 zu:

SET @SQL1 = NVARCHAR(Max)
SET @SQL1 = @SQL1 + 'SELECT DISTINCT VenueInfo.VenueID, VenueInfo.VenueName...
Nach dem Login kopieren

Dieser Ansatz verhindert das Verhalten der Ganzzahldivision, bei der Datentypen basierend auf der Priorität der Operatoren abgeleitet werden. In diesem Fall steht die Zuweisung immer an letzter Stelle, ähnlich wie bei anderen Programmiersprachen. Daher behandelt die obige Zuweisung die gesamte Zeichenfolge von Anfang an als Nvarchar(Max).

Das obige ist der detaillierte Inhalt vonWarum wird Nvarchar(Max) in T-SQL auf 4000 Zeichen gekürzt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage