Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Najlepsze opcje ANSI podczas tworzenia nowej bazy danych

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).




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak działa funkcja SOUNDEX() serwera SQL?

  2. Jak mogę zrobić instrukcję UPDATE z JOIN w SQL Server?

  3. Instalacja SQL Server 2008

  4. Jak ustalić, czy rekord z określonym typem danych IMAGE już istnieje w tabeli?

  5. Jak wstawić/pobrać pliki programu Excel do kolumny varbinary(max) w programie SQL Server 2008?