SQL Server查询结果末尾的空白区域

时间:2021-03-18 16:59:50

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

我刚刚安装了Microsoft SQL Server 2008 R2以使用LINQ to SQL进行测试。

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

我有一个表有一列nchar(20)和两行:'123'和'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.

SQL Server似乎填充了未使用的空间(因为列是一个20字节的nchar),带有空格。

What can I do to prevent this from happening?

我该怎么做才能防止这种情况发生?

3 个解决方案

#1


18  

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

使用nvarchar而不是nchar。 nchar是一个固定宽度的字段,填充空格,如您所见。

#2


2  

Change the column type to nvarchar.

将列类型更改为nvarchar。

See nchar and nvarchar.

请参阅nchar和nvarchar。

#3


1  

you need nvarchar, it is flexible.

你需要nvarchar,它很灵活。

#1


18  

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

使用nvarchar而不是nchar。 nchar是一个固定宽度的字段,填充空格,如您所见。

#2


2  

Change the column type to nvarchar.

将列类型更改为nvarchar。

See nchar and nvarchar.

请参阅nchar和nvarchar。

#3


1  

you need nvarchar, it is flexible.

你需要nvarchar,它很灵活。