Verwenden von char- und varchar-Daten

Der char- und der varchar-Datentyp speichern Daten, die sich aus folgenden Bestandteilen zusammensetzen:

  • Groß- und Kleinbuchstaben, wie z. B. a, b und C.

  • Zahlen, wie z. B. 1, 2 oder 3.

  • Sonderzeichen, wie das At-Zeichen (@), das kaufmännische Und-Zeichen (&) und das Ausrufezeichen (!).

char- oder varchar-Daten können ein Zeichen enthalten oder aus einer Zeichenfolge mit maximal 8.000 Zeichen (char-Daten) bzw. 2^31 Zeichen (varchar-Daten) bestehen. varchar-Datentypen können zwei Formen annehmen. varchar-Daten können eine angegebene maximale Länge aufweisen: varchar(6) bedeutet beispielsweise, dass dieser Datentyp maximal sechs Zeichen speichern kann. Oder sie können in der Form varchar(max), ausgedrückt werden, womit die maximale Anzahl von Zeichen, die in diesem Datentyp gespeichert werden können, auf 2^31 erhöht wird. Weitere Information zu varchar(max), finden Sie unter Verwenden von Datentypen mit umfangreichen Werten.

Jeder char- und varchar-Datenwert weist eine Sortierung auf. Sortierungen definieren Attribute, wie die Bitmuster, die zur Darstellung der einzelnen Zeichen verwendet werden, Vergleichsregeln und die Unterscheidung von Groß-/Kleinschreibung oder nach Akzenten. Jede Datenbank verfügt über eine Standardsortierung. Wird eine Spalte definiert oder eine Konstante angegeben, wird ihnen die Standardsortierung der Datenbank zugewiesen, es sei denn, Sie weisen ihnen mithilfe der COLLATE-Klausel eine bestimmte Sortierung zu. Wenn zwei char- oder varchar-Werte mit verschiedenen Sortierungen kombiniert oder verglichen werden, bestimmen die Regeln für die Sortierungsrangfolge die für den Vorgang verwendete Sortierung.

Zeichenkonstanten müssen in einfache (') oder doppelte Anführungszeichen (") eingeschlossen werden. Es wird empfohlen, eine Zeichenkonstante von einfachen Anführungszeichen zu umgeben. Das Einschließen einer Zeichenkonstante in doppelte Anführungszeichen ist in manchen Fällen nicht zulässig, wenn die Option QUOTED IDENTIFIER auf ON festgelegt ist.

Das folgende Beispiel für eine Transact-SQL-Anweisung legt eine Zeichenvariable auf einen Wert fest:

DECLARE @MyCharVar CHAR(25)
SET @MyCharVar = 'Ricardo Adocicados'

Wenn Sie eine Zeichenkonstante, die ein eingebettetes einfaches Anführungszeichen enthält, mit einfachen Anführungszeichen begrenzen, verwenden Sie zur Darstellung des eingebetteten einfachen Anführungszeichens zwei einfache Anführungszeichen, wie in folgendem Beispiel: Beispiel:

SET @MyCharVar = 'O''Leary'

Falls die zu speichernden Daten länger als die Anzahl der zulässigen Zeichen sind, werden die Daten abgeschnitten. Wenn z. B. eine Spalte als char(10) definiert wurde und der Wert "This is a really long character string" in der Spalte gespeichert wird, schneidet SQL Server die Zeichenfolge so ab: "This is a ".

Der char-Datentyp ist ein Datentyp fester Länge, wenn die NOT NULL-Klausel angegeben wird. Wird ein Wert, der kürzer als die Länge der Spalte ist, in eine char NOT NULL-Spalte eingefügt, so wird der Wert rechts bis zum Erreichen der Spaltengröße mit Leerzeichen aufgefüllt. Wenn z. B. eine Spalte als char(10) definiert wurde und "music" die zu speichernden Daten darstellt, speichert SQL Server diese Daten als "music_____", wobei "_" ein Leerzeichen anzeigt.

Wenn ANSI_PADDING beim Erstellen einer char NULL-Spalte auf ON festgelegt ist, verhält sie sich gleich wie eine char NOT NULL-Spalte: Werte werden rechts bis zum Erreichen der Größe der Spalte aufgefüllt. Ist ANSI_PADDING beim Erstellen einer charNULL-Spalte auf OFF festgelegt, verhält sich die Spalte wie eine varchar-Spalte mit ANSI_PADDING auf OFF, sodass die nachfolgenden Leerzeichen abgeschnitten werden.

Der varchar-Datentyp ist ein Datentyp variabler Länge. Werte, die kürzer als die Größe der Spalte sind, werden nicht rechts mit Leerzeichen bis zum Erreichen der Spaltengröße aufgefüllt. Falls die Option ANSI_PADDING beim Erstellen der Spalte auf OFF festgelegt war, werden alle nachgestellten Leerzeichen von den in der Spalte gespeicherten Werten abgeschnitten. Wenn ANSI_PADDING beim Erstellen der Spalte auf ON festgelegt war, werden nachgestellte Leerzeichen nicht abgeschnitten.

Die Art, wie die in den Bytes einer Zeichenfolge gespeicherten Bitmuster interpretiert werden, beruht auf der während der Ausführung von Setup angegebenen MicrosoftSQL Server-Codepage. Ein char- oder varchar-Objekt kann jedes beliebige Zeichen der SQL Server-Codepage enthalten. .

Anwendungen, die die SQL Server-ODBC-Treiber aus SQL Server Version 6.5 oder früher verwenden, unterstützen maximal 255 Byte Zeichendaten. Falls diese Anwendungen versuchen, Zeichenparameter aus SQL Server Version 7.0 oder höher oder Resultsetspalten mit mehr als 255 Byte Daten abzurufen, werden die Zeichendaten auf 255 Byte abgeschnitten.