views:

49

answers:

3

I just installed Microsoft SQL Server 2008 R2 to test with LINQ to SQL.

I have a table with one column of type nchar(20) and two rows: '123' and 'Test'.

If I query all the rows from that table and wrap each value with "'" I get the following:

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

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

SQL Server seems to be filling the unused space (because the column is a 20 byte nchar) with spaces.

What can I do to prevent this from happening?

+1  A: 

Change the column type to nvarchar.

See nchar and nvarchar.

sgriffinusa
+1  A: 

you need nvarchar, it is flexible.

Andrey
+6  A: 

Use nvarchar instead of nchar. nchar is a fixed width field that is filled with spaces, as you're seeing.

bobs