In SQL Server ist das SET TEXTSIZE -Anweisung gibt die Größe von varchar(max) an , nvarchar(max) , varbinary(max) , Text , ntext und Bild Daten, die von einem SELECT zurückgegeben werden Aussage.
Microsoft empfiehlt diesen Text , ntext und Bild wird in einer zukünftigen Version von SQL Server entfernt, daher sollten Sie die Verwendung dieser Datentypen in neuen Entwicklungsarbeiten vermeiden und planen, Anwendungen, die sie derzeit verwenden, so zu ändern, dass sie varchar(max) verwenden , nvarchar(max) , oder varbinary(max) stattdessen.
Beispiel 1 – Grundlegende Verwendung
Hier ist ein Beispiel für die Einstellung von TEXTSIZE Wert.
SETZE TEXTSGRÖSSE 2048;
Das setzt TEXTSIZE bis 2048 Byte.
Beispiel 2 – Überprüfen Sie den TEXTSIZE-Wert
Sie können die aktuelle TEXTSIZE überprüfen Wert mit @@TEXTSIZE :
SELECT @@TEXTSIZE AS [Textgröße];
Ergebnis:
+-------------+| Textgröße ||-------------|| 2048 |+---------------------+
Beispiel 3 – Auswirkungen auf die Abfrageergebnisse
Hier ist ein Beispiel, das zeigt, wie die TEXTSIZE -Wert kann die in einem SELECT zurückgegebenen Ergebnisse beeinflussen Abfrage.
Lassen Sie uns zuerst eine Tabelle erstellen, Text einfügen und ihn dann auswählen.
USE Test;CREATE TABLE TextSizeTest ( varchar50 varchar(50), varcharMax varchar(max), nvarcharMax nvarchar(max) ); INSERT INTO TextSizeTestVALUES ( 'Dragonfruit', 'Dragonfruit', 'Dragonfruit' );SELECT * FROM TextSizeTest;
Ergebnis (normal):
+-------------+-------------+---------------+| varchar50 | varcharMax | nvarcharMax ||-------------+-------------+---------------|| Drachenfrucht | Drachenfrucht | Drachenfrucht |+-------------+-------------+---------------+Das würden wir normalerweise erwarten. Es gibt den vollständigen Text in jeder Spalte zurück, da jede Textzeile weniger als 2048 Bytes belegt (was ich mit
TEXTSIZEeingestellt habe zu im vorherigen Beispiel).Aber Folgendes passiert, wenn ich
TEXTSIZEreduziere Wert:SET TEXTSIZE 4;SELECT * FROM TextSizeTest;Ergebnis:
+-------------+-------------+---------------+| varchar50 | varcharMax | nvarcharMax ||-------------+-------------+---------------|| Drachenfrucht | Ziehen Sie | Dr. |+-------------+-------------+---------------+Die erste Spalte ist nicht betroffen, da es sich nicht um eine „Max“-Spalte handelt. Was ich meine ist, es ist ein varchar(50) und nicht varchar(max) . Die
TEXTSIZEOption wirkt sich nur auf Spalten aus, die mitmaxdefiniert sind .Die zweite Spalte gibt die ersten vier Zeichen zurück. Das liegt daran, dass wir die
TEXTSIZEgesetzt haben Wert auf 4, und die ersten vier Zeichen verwenden 4 Bytes.Die dritte Spalte gibt nur die ersten 2 Zeichen zurück. Das liegt daran, dass es sich um ein nvarchar handelt Säule. In diesem Fall verwenden die ersten beiden Zeichen 4 Bytes.
Beispiel 4 – Wert zurücksetzen
Eine Sache, die Sie beachten sollten, ist die Angabe von
SET TEXTSIZE 0tatsächlich „setzt“ es auf den Standardwert von 4096 zurück.SET TEXTSIZE 0;SELECT @@TEXTSIZE AS [@@TEXTSIZE];SELECT * FROM TextSizeTest;Ergebnis:
+--------------+| @@TEXTSIZE ||--------------|| 4096 |+-------------+(1 Zeile betroffen)+-------------+------------ --+---------------+| varchar50 | varcharMax | nvarcharMax ||-------------+-------------+---------------|| Drachenfrucht | Drachenfrucht | Drachenfrucht |+-------------+-------------+---------------+(1 Zeile betroffen)