nchar und nvarchar (Transact-SQL)nchar and nvarchar (Transact-SQL)

Dieses Thema gilt für: JaSQL Server (ab 2008)JaAzure SQL-DatenbankJaAzure SQL Data Warehouse Ja Parallel Datawarehouse THIS TOPIC APPLIES TO: yesSQL Server (starting with 2008)yesAzure SQL DatabaseyesAzure SQL Data Warehouse yesParallel Data Warehouse

Zeichendatentypen, bei denen es sich um Unicode-Daten entweder fester Länge (nchar) oder variabler Länge (nvarchar) handelt und die den UNICODE UCS-2-Zeichensatz verwenden.Character data types that are either fixed-length, nchar, or variable-length, nvarchar, Unicode data and use the UNICODE UCS-2 character set.

ArgumenteArguments

nchar [ ( n ) ]nchar [ ( n ) ]
Unicode-Zeichenfolgendaten mit fester Länge.Fixed-length Unicode string data. n definiert die Zeichenfolgenlänge und muss ein Wert von 1 bis 4.000 sein.n defines the string length and must be a value from 1 through 4,000. Die Speichergröße beträgt zweimal n Byte.The storage size is two times n bytes. Auch wenn die Sortierungscodepage Doppelbytezeichen verwendet, beträgt die Speichergröße weiterhin n Byte.When the collation code page uses double-byte characters, the storage size is still n bytes. Je nach Zeichenfolge kann die Speichergröße von n Byte weniger als der für n angegebene Wert betragen.Depending on the string, the storage size of n bytes can be less than the value specified for n. Die ISO-Synonyme für nchar lauten national char und national character.The ISO synonyms for nchar are national char and national character.

nvarchar [ ( n | max ) ]nvarchar [ ( n | max ) ]
Unicode-Zeichenfolgendaten variabler Länge.Variable-length Unicode string data. n definiert die Zeichenfolgenlänge und kann ein Wert von 1 bis 4.000 sein.n defines the string length and can be a value from 1 through 4,000. max gibt an, dass die maximale Speichergröße 2^30-1 Zeichen beträgt.max indicates that the maximum storage size is 2^30-1 characters. Die maximale Speichergröße in Byte beträgt 2 GB.The maximum storage size in bytes is 2 GB. Die tatsächliche Speichergröße in Byte ist doppelt so groß wie die Anzahl der eingegebenen Zeichen + 2 Byte.The actual storage size, in bytes, is two times the number of characters entered + 2 bytes. Die ISO-Synonyme für nvarchar lauten national char varying und national character varying.The ISO synonyms for nvarchar are national char varying and national character varying.

RemarksRemarks

Wenn n in einer Datendefinitions- oder Variablendeklarationsanweisung nicht angegeben ist, beträgt die Standardlänge 1.When n is not specified in a data definition or variable declaration statement, the default length is 1. Wenn n in der CAST-Funktion nicht angegeben ist, beträgt die Standardlänge 30.When n is not specified with the CAST function, the default length is 30.

Verwenden Sie nchar, wenn die Größen der Spaltendateneinträge wahrscheinlich ähnlich sein werden.Use nchar when the sizes of the column data entries are probably going to be similar.

Verwenden Sie nvarchar, wenn die Größen der Spaltendateneinträge wahrscheinlich stark variieren werden.Use nvarchar when the sizes of the column data entries are probably going to vary considerably.

sysname ist ein vom System bereitgestellter benutzerdefinierter Datentyp, der funktional nvarchar(128) entspricht, außer dass er keine NULL-Werte zulässt.sysname is a system-supplied user-defined data type that is functionally equivalent to nvarchar(128), except that it is not nullable. sysname wird zum Verweisen auf Datenbankobjektnamen verwendet.sysname is used to reference database object names.

Objekten, die nchar or nvarchar verwenden, wird die Standardsortierung der Datenbank zugewiesen, es sei denn, mithilfe der COLLATE-Klausel wird eine bestimmte Sortierung zugewiesen.Objects that use nchar or nvarchar are assigned the default collation of the database unless a specific collation is assigned using the COLLATE clause.

SET ANSI_PADDING hat für nchar und nvarchar immer den Wert ON.SET ANSI_PADDING is always ON for nchar and nvarchar. SET ANSI_PADDING OFF gilt nicht für die Datentypen nchar oder nvarchar.SET ANSI_PADDING OFF does not apply to the nchar or nvarchar data types.

Unicode-Zeichenfolgenkonstanten mit dem vorausgehenden Buchstaben „N“. Ohne dieses wird die Zeichenfolge in die Standardcodepage der Datenbank konvertiert.Prefix Unicode character string constants with the letter N. Without the N prefix, the string is converted to the default code page of the database. Diese Standardcodepage erkennt möglicherweise bestimmte Zeichen nicht.This default code page may not recognize certain characters.

Hinweis

Wenn einer Zeichenfolgenkonstante der Buchstabe „N“ vorausgeht, gibt die implizite Konvertierung eine Unicode-Zeichenfolge zurück, wenn die Konstante, die konvertiert werden soll, die maximale Länge für einen Datentyp für Unicode-Zeichenfolgen (4.000) nicht überschreitet.When prefixing a string constant with the letter N, the implicit conversion will result in a Unicode string if the constant to convert does not exceed the max length for a Unicode string data type (4,000). Andernfalls hat die implizite Konvertierung Unicode mit höheren Werten (max) zur Folge.Otherwise, the implicit conversion will result in a Unicode large-value (max).

Warnung

Jede varchar(max)- oder nvarchar(max)-Spalte, die ungleich NULL ist, erfordert 24 Byte an zusätzlicher fester Zuteilung, die während eines Sortiervorgangs hinsichtlich des Zeilenlimits von 8.060 Byte gelten.Each non-null varchar(max) or nvarchar(max) column requires 24 bytes of additional fixed allocation, which counts against the 8,060-byte row limit during a sort operation. Diese zusätzlichen Byte können zur Erstellung einer impliziten Beschränkung der Anzahl der varchar(max)- oder nvarchar(max)-Spalten führen, die ungleich NULL sind.These additional bytes can create an implicit limit to the number of non-null varchar(max) or nvarchar(max) columns in a table. Beim Erstellen der Tabelle (außerhalb der üblichen Warnung darüber, dass die maximale Zeilengröße das zulässige Maximum von 8.060 Bytes überschreitet) oder zum Zeitpunkt der Dateneinfügung wird kein spezieller Fehler ausgegeben.No special error is provided when the table is created (beyond the usual warning that the maximum row size exceeds the allowed maximum of 8060 bytes) or at the time of data insertion. Diese umfangreiche Zeilengröße kann Fehler verursachen (z.B. Fehler 512), die Benutzer während einiger normaler Vorgänge möglicherweise nicht vorhersehen können.This large row size can cause errors (such as error 512) that users may not anticipate during some normal operations. Die Aktualisierung eines gruppierten Indexschlüssels und Teile des vollständigen Spaltensatzes stellen zwei Beispiele für Vorgänge dieser Art dar.Two examples of operations are a clustered index key update, or sorts of the full column set.

Konvertieren von ZeichendatenConverting Character Data

Informationen zum Konvertieren von Zeichendaten finden Sie unter char und varchar (Transact-SQL).For information about converting character data, see char and varchar (Transact-SQL).

BeispieleExamples

CREATE TABLE dbo.MyTable  
(  
  MyNCharColumn nchar(15)  
,MyNVarCharColumn nvarchar(20)

);  

GO  
INSERT INTO dbo.MyTable VALUES (N'Test data', N'More test data');  
GO  
SELECT MyNCharColumn, MyNVarCharColumn  
FROM dbo.MyTable;  

Im Folgenden finden Sie das Resultset.Here is the result set.

MyNCharColumn   MyNVarCharColumn  
--------------- --------------------  
Test data       More test data  

(1 row(s) affected)  

Siehe auchSee also

ALTER TABLE (Transact-SQL)ALTER TABLE (Transact-SQL)
CAST und CONVERT (Transact-SQL)CAST and CONVERT (Transact-SQL)
COLLATE (Transact-SQL)COLLATE (Transact-SQL)
CREATE TABLE (Transact-SQL)CREATE TABLE (Transact-SQL)
Datentypen (Transact-SQL)Data Types (Transact-SQL)
DECLARE @local_variable (Transact-SQL)DECLARE @local_variable (Transact-SQL)
LIKE (Transact-SQL)LIKE (Transact-SQL)
SET ANSI_PADDING (Transact-SQL)SET ANSI_PADDING (Transact-SQL)
SET @local_variable (Transact-SQL)SET @local_variable (Transact-SQL)
Sortierung und Unicode-UnterstützungCollation and Unicode Support