Frage

Ich habe gerade Microsoft SQL Server 2008 R2 installiert, um mit LINQ auf SQL zu testen.

Ich habe eine Tabelle mit einer Spalte vom Typ nchar (20) und zwei Zeilen: '123' und 'Test'.

Wenn ich alle Zeilen aus dieser Tabelle abfrage und jeden Wert mit "'" einpackte, erhalte ich Folgendes:

'123 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ' ( _ is a space)

'Test _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ' ( _ is a space)

SQL Server scheint den nicht verwendeten Speicherplatz (da die Spalte ein 20 -Byte -NCHAR ist) mit Leerzeichen zu füllen.

Was kann ich tun, um dies zu verhindern?

War es hilfreich?

Lösung

Verwenden Sie Nvarchar anstelle von nchar. NCHAR ist ein Feld fester Breite, das mit Räumen gefüllt ist, wie Sie sehen.

Andere Tipps

Ändern Sie den Spaltentyp auf nvarchar.

Sehen nchar und nvarchar.

du brauchst nvarchar, es ist flexibel.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top