Почему SQL Server не поддерживает SET ANSI_PADDING OFF?
-
06-07-2019 - |
Вопрос
Согласно MSDN BOL (Books Online) на SET ANSI_PADDING код>
,
В будущей версии Microsoft SQL Server ANSI_PADDING всегда будет включен, и любые приложения, которые явно установят для параметра значение OFF, будут выдавать ошибку. Избегайте использования этой функции в новых разработках и планируйте модифицировать приложения, которые в настоящее время используют эту функцию.
Я никогда не использовал эту опцию, но похоже, что при правильном использовании она может сэкономить много места в базе данных для полей char
и varbinary
.
Почему SET ANSI_PADDING
становится устаревшим, за исключением того факта, что он не совместим с ANSI?
Есть ли веские причины для этого?
Решение
Не ответ, просто мнение:
Лично я хотел бы верить, что они удаляют его, потому что это ноль боль в нуле. Если один объект базы данных создан, используется, на него ссылаются или что-то еще, если он включен, второй выполняется так, когда он выключен, и вы пытаетесь работать с обоими одновременно (две таблицы, таблица ссылок на процедуры и т. Д.), Ваши результаты могут быть противоречивыми или не иметь смысла, и вам потребуется Навсегда , чтобы понять, что происходит.
(Существуют и другие настройки SET, подобные этим, и еще хуже. Надеюсь, они все их не поддерживают.)
Другие советы
Эта функция вообще не использовалась и не соответствует ANSI, поэтому они ее удалят. Экономия места может быть выполнена независимо от ansi_padding, сервер sql может удалить отступы внутри.