Почему SQL Server обесценивает SET ANSI_PADDING OFF?

Согласно MSDN BOL (Books Online) на SET ANSI_PADDING,

В будущей версии Microsoft SQL Server ANSI_PADDING всегда будет включен, и любые приложения, которые явно устанавливают значение OFF, вызывают ошибку. Избегайте использования этой функции в новых разработках и планируйте изменять приложения, которые в настоящее время используют эту функцию.

Я никогда не использовал этот параметр, но похоже, что он может фактически сэкономить много пространств базы данных для полей char и varbinary при правильном использовании.

Почему SET ANSI_PADDING устаревает, кроме того, что он не совместим с ANSI?

Есть ли веские причины?

Ответ 1

Не ответ, просто мнение:

Мне лично хотелось бы верить, что они его удаляют, потому что это боль в нуле. Если один объект базы данных создается, используется, ссылается или что-то еще с ним включен, второй выполняется с выключенным, и вы пытаетесь работать с обоими одновременно (две таблицы, таблица ссылок на процедуры и т.д.), ваши результаты могут быть несогласованными или не иметь смысла, и вам понадобится Forever, чтобы выяснить, что происходит.

(Существуют и другие настройки SET, подобные этому, и еще хуже. Надеюсь, они осудят их всех.)

Ответ 2

Эта функция не использовалась вообще, и она также не соответствует требованиям ANSI, поэтому они удаляют ее. Экономия места может быть выполнена независимо от ansi_padding, сервер sql может удалить внутреннюю часть.