2012-04-14 9 views
0

ich dieses Problem haben, wo in meiner Datenbank, die ich viele leere Räume nach meinem Text bekommen,SQL Server: Whitespaces in Reihen

per E-Mail Ich habe "[email protected]+_________________________________________" viele Räume

Meine E-Mail-Reihe ist nchar(255)

und das passiert mit all meinen Tabellen

Kann mir jemand erklären, warum ist das passiert und wie es zu beheben?

Antwort

4

CHAR und NCHAR wird automatisch eine Zeichenfolge mit Leerzeichen nach rechts auffüllen, um die definierte Länge zu erfüllen. Verwenden Sie NVARCHAR(255) anstelle von NCHAR(255).

+0

gespeichert werden müssen. Ich verstehe jetzt, danke. – kenan

0

sollten Sie nvarchar

SQL Server bietet sowohl Datentypen Zeicheninformationen zu speichern. In den meisten Fällen sind die beiden Datentypen identisch, wenn Sie mit ihnen innerhalb von SQL Server oder von einer Anwendung aus arbeiten. Der Unterschied besteht darin, dass nvarchar zum Speichern von Unicode-Daten verwendet wird, die zum Speichern mehrsprachiger Daten in Ihren Datenbanktabellen verwendet werden. Andere Sprachen haben einen erweiterten Satz von Zeichencodes, die gespeichert werden müssen, und dieser Datentyp erlaubt diese Erweiterung. Wenn Ihre Datenbank keine mehrsprachigen Daten speichert, sollten Sie stattdessen den Datentyp varchar verwenden. Der Grund dafür ist, dass nvarchar doppelt so viel Platz benötigt wie varchar, weil die erweiterten Zeichencodes für andere Sprachen von

+1

Sie haben die Unterschiede zwischen varchar und nvarchar erläutert, aber nicht die Unterschiede zwischen nchar und nvarchar. –

+2

@Blam das OP verwendet 'nchar'. Halis schlug stattdessen vor, 'nvarchar' zu verwenden und erklärte dann, wie' nvarchar' sich von 'varchar' unterscheidet. Wenn er 'nvarchar' gegenüber' nchar' vorschlägt, sollte die Erklärung nicht beschreiben, wie 'nvarchar' sich von' nchar' unterscheidet? –

+0

@AaronBertrand zustimmen – Paparazzi