根据SET ANSI_PADDING
上的MSDN BOL(联机丛书),
在Microsoft SQL Server的未来版本中,ANSI_PADDING将始终为ON,并且将选项明确设置为OFF的任何应用程序都将产生错误。避免在新的开发工作中使用此功能,并计划修改当前使用此功能的应用程序。
我从未使用过此选项,但如果使用正确,它实际上可以为char
和varbinary
字段保存大量数据库空间。
为什么SET ANSI_PADDING
变得过时,除了它不符合ANSI标准这一事实?
有什么好理由吗?
答案 0 :(得分:10)
不是答案,只是意见:
我个人想要相信他们正在删除它,因为它在null中是一个归零的痛苦。如果一个数据库对象被创建,使用,引用或其他任何一个数据库对象打开,第二个数据库对象是关闭的,你尝试同时使用它们(两个表,过程引用表等),您的结果可能不一致或可能没有意义,您需要永远来弄清楚发生了什么。
(还有其他类似的SET设置,更糟糕的是。我希望他们全部弃用它们。)
答案 1 :(得分:5)
该功能根本没有使用,也不符合ANSI标准,所以他们会删除它。无论ansi_padding如何,都可以节省空间,sql server可以在内部删除填充。