2010-08-06 5 views
6

Ich habe gerade Microsoft SQL Server 2008 R2 zum Testen mit LINQ to SQL installiert.Leerer Speicherplatz am Ende der SQL Server-Abfrageergebnisse

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

Wenn ich Abfrage alle Zeilen aus dieser Tabelle und jeden Wert wickeln mit „'“ Ich bekomme die folgende:

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

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

SQL Server scheint den ungenutzten Speicherplatz füllt werden (da die Spalte ein 20 Byte nchar) mit Leerzeichen.

Was kann ich tun, um dies zu verhindern?

+1

Nur um hinzuzufügen, dass es ein 40 Byte Nchar nicht 20 wie in Ihrer Frage ist. Unicode-Datentypen nehmen den doppelten Platz ein. –

Antwort

17

Verwenden Sie nvarchar anstelle von nchar. nchar ist ein Feld mit fester Breite, das, wie Sie sehen, mit Leerzeichen gefüllt ist.

1

Sie brauchen nvarchar, es ist flexibel.