Пустое пространство в конце результатов запроса SQL Server - PullRequest
7 голосов
/ 07 августа 2010

Я только что установил Microsoft SQL Server 2008 R2 для тестирования с LINQ to SQL.

У меня есть таблица с одним столбцом типа nchar (20) и двумя строками: «123» и «Test».

Если я запрашиваю все строки из этой таблицы и заключаю каждое значение в "'", я получаю следующее:

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

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

Похоже, что SQL Server заполняет неиспользуемые пробелы (поскольку столбец представляет собой 20-байтовый nchar) пробелами.

Что я могу сделать, чтобы этого не случилось?

Ответы [ 3 ]

18 голосов
/ 07 августа 2010

Используйте nvarchar вместо nchar.nchar - это поле фиксированной ширины, заполненное пробелами, как вы видите.

2 голосов
/ 07 августа 2010

Измените тип столбца на nvarchar.

См. nchar и nvarchar .

1 голос
/ 07 августа 2010

вам нужно nvarchar, он гибкий.

...