为什么SQL Server不推荐使用SET ANSI_PADDING?

dan*_*die 10 sql sql-server dep

根据MSDN BOL(联机丛书)上SET ANSI_PADDING,

在Microsoft SQL Server的未来版本中,ANSI_PADDING将始终为ON,并且将选项明确设置为OFF的任何应用程序都将产生错误.避免在新的开发工作中使用此功能,并计划修改当前使用此功能的应用程序.

我从来没有使用过这个选项,但如果使用得当,它看起来实际上可以保存很多数据库空间charvarbinary字段.

SET ANSI_PADDING除了不符合ANSI标准之外,为什么会变得过时?

有什么好理由吗?

Phi*_*ley 10

不是答案,只是一个意见:

我个人想要相信他们正在删除它,因为它在null中是一个归零的痛苦.如果一个数据库对象被创建,使用,引用或其他任何一个数据库对象打开,第二个数据库对象是关闭的,你尝试同时使用它们(两个表,过程引用表等),您的结果可能是不一致的或可能是没有意义,它会带你永远要弄清楚是怎么回事.

(还有其他类似的SET设置,更糟糕的是.我希望他们全部弃用它们.)


Pop*_*lin 5

该功能根本没有使用,它也不符合ANSI标准,因此他们将删除它.无论ansi_padding如何,都可以节省空间,sql server可以在内部删除填充.