SQL Server 中的 TrimTrailingBlanks

eKe*_*ek0 2 sql-server string

sp_help文档中,没有过多介绍表的属性 TrimTrailingBlanks:

TrimTrailingBlanks | varchar(35) | Trim the trailing blanks. Returns Yes or No.
Run Code Online (Sandbox Code Playgroud)

所以我在想打开它是否是一个好的做法,或者我是否应该让它默认关闭。我想要做的是删除左右字符串中的空格,并且(按名称)是此属性所启用的。

现在,您知道打开此属性是否是一个好的做法吗?

我知道我可以在应用程序代码中执行尾随操作,但在任何插入或更新之前在数据库中自动完成此操作会非常好。我不知道如果我将值“No”更改为“Yes”是否会有任何缺点。

lav*_*nio 5

这与尾随空白的处理方式有关。它与前导空格没有任何关系。它与固定长度字符串是否用空格填充到其定义的长度有关。

有关详细信息,请参阅SET ANSI_PADDING,其中有一个很好的效果表。sp_help过程报告这些列在定义时的设置

为了安全起见,您应该始终在存储数据之前清理数据,无论它与填充或修剪、设置为特定情况还是其他有关。您永远不知道数据库升级会改变什么。