Opcje są domyślnie ustawione na OFF
ponieważ najprawdopodobniej ta baza danych została utworzona i oskryptowana bez dotykania żadnych wartości domyślnych. Kiedy tworzona jest baza danych, jest ona zasadniczo klonowana z model
systemowej bazy danych, a przy zupełnie nowej instalacji SQL Server ustawienia ANSI w bazie danych będą OFF
, mimo że niektóre z tych ustawień (np. ANSI_NULLS
) to opcje, których naprawdę nigdy nie chciałbyś być OFF
dla każdej nowoczesnej aplikacji bazodanowej. W rzeczywistości w przypadku ANSI_NULLS
w szczególności dokumentacja określa, że możliwość całkowitego wyłączenia jest przestarzała
, chociaż prawdopodobnie minie jeszcze kilka lat, zanim tak się stanie.
I na tym polega problem:te ustawienia są nadal OFF
na korzyść starych aplikacji, które musiały włączyć te opcje ON
z powrotem, kiedy korzystać z ich dobroci (i łamania zmian). Jeśli sesja nie określa dla nich żadnych wartości, stosowane są ustawienia bazy danych.
Ale większość aplikacji tak określić te ustawienia w sesji, jeśli nie jawnie, to niejawnie przez ich bibliotekę dostępu do danych. Zgodnie z dokumentacją dotyczącą SET ANSI_DEFAULTS
, który przełącza kilka ustawień jednocześnie:
DB-Library to stara biblioteka dostępowa, która jest jednak nadal używana przez niektóre stare aplikacje i opcjonalnie jako źródło zapasowe dla takich rzeczy jak FreeTDS, więc co jakiś czas możesz uruchomić aplikację, która celowo lub przypadkowo korzysta z ustawień bazy danych, ale to jest coraz rzadszy.
Co do najlepszych wartość tych opcji, która zależy wyłącznie od przypadku użycia. Jeśli musisz obsługiwać stare aplikacje, które oczekują starego zachowania, możesz nie mieć wyboru co do pozostawienia ustawień bazy danych na OFF
. Jeśli masz aplikację, która łączy się przez starą bibliotekę, ale naprawdę oczekuje nowoczesnej semantyki SQL, możesz chcieć ją włączyć ON
. W przypadku wszystkich innych aplikacji te opcje są prawdopodobnie już ustawiane dla poszczególnych sesji na ich (nie)poprawne wartości przez samą aplikację, a to, co konfigurujesz, i tak nie ma znaczenia.
Dyskusja na temat każdej indywidualnej opcji i kiedy chcesz ją włączyć ON
lub OFF
przekroczy granice rozsądnej odpowiedzi. Zapoznaj się z dokumentacją na temat każdego z nich i sformułuj własne najlepsze praktyki. Możesz pozwolić na takie rzeczy jak SET
wymagania opcji dla indeksów w kolumnach obliczanych
poprowadzi Cię, które wymagają kilku opcji, aby były ON
zanim będziesz mógł je stworzyć (i ogólnie uważa się je za fajną rzecz).