Почему 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 может удалить внутреннюю часть.