Почему SQL Server не поддерживает SET ANSI_PADDING OFF? - PullRequest
10 голосов
/ 12 сентября 2009

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

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

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

Почему SET ANSI_PADDING становится устаревшим, за исключением того факта, что он не соответствует ANSI?

Есть ли веские причины, почему?

Ответы [ 2 ]

10 голосов
/ 12 сентября 2009

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

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

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

5 голосов
/ 12 сентября 2009

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

...