Verwenden von Datentypen mit umfangreichen Werten

Dieser max-Bezeichner erweitert die Speicherfunktionen der varchar-, nvarchar- und varbinary-Datentypen. varchar(max), nvarchar(max) und varbinary(max) werden gemeinsam als Datentypen mit umfangreichen Werten bezeichnet. Sie können die Datentypen mit umfangreichen Werten zum Speichern von bis zu 2^31-1 Bytes an Daten verwenden.

HinweisHinweis

Wenn die Option large value types out of row der gespeicherten Prozedur sp_tableoption auf OFF festgelegt wird, beträgt die Speicherbegrenzung für Daten in Zeilen für Datentypen mit umfangreichen Werten 8.000 Byte. Ein 16-Byte-Stamm wird innerhalb der Zeile gespeichert, wenn diese Option auf ON festgelegt wird. Weitere Informationen finden Sie unter sp_tableoption (Transact-SQL).

HinweisHinweis

Bei Replizieren von Daten müssen Sie ggf. die max text repl size (Option) auf -1 festlegen.

Die Datentypen mit umfangreichen Werten ähneln in ihrem Verhalten ihren kleineren Gegenstücken varchar, nvarchar und varbinary. Durch diese Ähnlichkeit kann SQL Server große Zeichen-, Unicode- und Binärdaten effizienter speichern und abrufen.

Durch die Datentypen mit umfangreichen Werten können Sie SQL Server auf eine Weise verwenden, die mithilfe der text-, ntext- und image-Datentypen aus früheren Versionen von SQL Server nicht möglich war. Sie können z. B. Variablen definieren, die große Datenmengen speichern: bis zu 2^31-1 Bytes an Zeichen-, Binär- und Unicode-Daten. Weitere Informationen finden Sie unter Transact-SQL-Variablen.

Die folgende Tabelle zeigt die Beziehung zwischen den Datentypen mit umfangreichen Werten und ihren Gegenstücken aus früheren Versionen von SQL Server.

Datentypen mit umfangreichen Werten

LOB-Datentypen aus früheren Versionen

varchar(max)

text*

nvarchar(max)

ntext*

varbinary(max)

image

* SQL Server-Clients, Version 6.5, unterstützen den ntext-Datentyp nicht; sie erkennen daher nvarchar(max) nicht.

Wichtiger HinweisWichtig

Verwenden Sie die varchar(max)-, nvarchar(max)- und varbinary(max)-Datentypen anstelle der text-, ntext- und image-Datentypen.

Datentypen mit umfangreichen Werten zeigen das gleiche Verhalten wie ihre kleineren Gegenstücke varchar(n), nvarchar(n) und varbinary(n). Der folgende Abschnitt beschreibt das Verwenden von Datentypen mit umfangreichen Werten in einigen besonderen Szenarien:

  • Cursor

    Da Variablen für Datentypen mit umfangreichen Werten definiert werden können, können Daten einer FETCH-Anweisung aus Spalten mit Datentypen mit umfangreichen Werten in lokalen Variablen gespeichert werden. Weitere Informationen finden Sie unter FETCH (Transact-SQL).

    Das Verwenden von Datentypen mit umfangreichen Werten wirkt sich nicht auf die Cursorverwendung aus, die eine Cursortypkonvertierung erzwingt.

  • Segmentierte Aktualisierungen

    Die UPDATE-Anweisung unterstützt nun eine **.**WRITE( )-Klausel zum Ausführen von Teilaktualisierungen der zugrunde liegenden Spalten mit Datentypen mit umfangreichen Werten. Dieser Vorgang ähnelt den Textzeigervorgänge WRITETEXT und UPDATETEXT, die für text-, ntext- und image-Datentypen in früheren Versionen von SQL Server unterstützt wurden. Weitere Informationen finden Sie unter UPDATE (Transact-SQL).

  • Trigger

    AFTER-Trigger sind für Spaltenverweise von Datentypen mit umfangreichen Werten in der inserted-Tabelle und in der deleted-Tabelle zulässig. Weitere Informationen finden Sie unter CREATE TRIGGER (Transact-SQL).

  • Zeichenfolgenfunktionen (Transact-SQL)

    Die integrierten Zeichenfolgefunktionen, die für Zeichen- und Binärdaten ausgeführt werden können, wurden für die Unterstützung von Datentypen mit umfangreichen Werten als Argumenten optimiert. Dabei handelt es sich z. B. um die folgenden Funktionen:

    Informationen zu Zeichenfolgefunktionen finden Sie unter Zeichenfolgenfunktionen (Transact-SQL).

Siehe auch

Konzepte