dan*_*n78 12 c# sql-server-2005
我正在处理的应用程序是将Unicode字符串存储NVARCHAR(50)在SQL Server 2005数据库的列中.
有时,数据库返回一个填充空格的字符串,直到列的最大长度(50).在其他时候,填充不会发生.
我认为此列的类型最初被指定为NCHAR,但是当我们意识到添加了空格时,我们将其更改为NVARCHAR(50).这跟它有什么关系吗?
无论哪种方式,这个"功能"可以关闭吗?
澄清
我刚刚意识到我上面写的内容并没有说明即使是新插入的字符串也会被填充空格.
Chr*_*den 15
NCHAR填补了这个领域,NVARCHAR没有.但是如果数据来自旧字段,那么空格将保持不变.
如果您之前已将它们转换NCHAR为NVARCHAR,则之前输入的任何数据仍将包含尾随空格.您可以通过以下方式更新它们:
UPDATE tablename
SET column = RTRIM(column)
Run Code Online (Sandbox Code Playgroud)