0

默认情况下,MySQL 在从字符串中删除空格后返回 char 字段。然而,这不是 ANSII 标准所期望的行为。另一方面,SQL Server 按原样返回空格(正如标准所期望的那样)。

在 MySQL 中,要更改它,我们可以通过以下方式之一设置变量 sql_mode 以包含 PAD_CHAR_TO_FULL_LENGTH:

仅适用于当前会话:

SET SESSION sql_mode = 'PAD_CHAR_TO_FULL_LENGTH'

或全球:

SET SESSION sql_mode = 'PAD_CHAR_TO_FULL_LENGTH'

问题是:SQL Server 是否有任何等效的设置来改变行为,所以它会正确修剪任何字符类型的空格(尽管它不是 ANSII 标准)——所以它的行为就像 MySQL?

4

1 回答 1

0

是的,SQL Server 确实有 sql 模式...

参考:https ://docs.microsoft.com/en-us/sql/ssma/mysql/sql-modes-mysqltosql?view=sql-server-ver15

等效于 PAD_CHAR_TO_FULL_LENGTH 是 ANSI_PADDING 尝试

SET ANSI_PADDING { ON | OFF }

https://docs.microsoft.com/en-us/sql/t-sql/statements/set-ansi-padding-transact-sql?view=sql-server-ver15

于 2020-01-15T17:14:50.583 回答