Die Optionen sind standardmäßig auf OFF
eingestellt weil diese Datenbank aller Wahrscheinlichkeit nach erstellt und geschrieben wurde, ohne die Standardeinstellungen zu ändern. Wenn eine Datenbank erstellt wird, wird sie im Wesentlichen aus dem model
geklont Systemdatenbank, und bei einer brandneuen Installation von SQL Server sind die ANSI-Einstellungen für die Datenbank OFF
, obwohl einige dieser Einstellungen (wie ANSI_NULLS
) sind Optionen, die Sie niemals OFF
haben möchten für jede moderne Datenbankanwendung. Tatsächlich im Fall von ANSI_NULLS
insbesondere gibt die Dokumentation an, dass die Möglichkeit, es überhaupt auszuschalten, veraltet
ist , obwohl es wahrscheinlich noch ein paar Jahre dauern wird, bis das wirklich der Fall ist.
Und darin liegt der Haken:Diese Einstellungen bleiben immer noch OFF
zugunsten alter Anwendungen, die diese Optionen ON
schalten mussten vor langer Zeit, als man von ihrer Güte (und bahnbrechenden Veränderungen) profitierte. Wenn die Sitzung keine Werte dafür angibt, werden die Datenbankeinstellungen angewendet.
Aber die meisten Anwendungen tun es Geben Sie diese Einstellungen in einer Sitzung an, wenn nicht explizit, dann implizit über ihre Datenzugriffsbibliothek. Gemäß der Dokumentation zu SET ANSI_DEFAULTS
, das eine Reihe von Einstellungen gleichzeitig umschaltet:
DB-Library ist eine alte Zugriffsbibliothek, die dennoch immer noch von einigen alten Anwendungen und optional als Sicherungsquelle für Dinge wie FreeTDS verwendet wird, so dass Sie hin und wieder auf eine Anwendung stoßen können, die absichtlich oder versehentlich die Datenbankeinstellungen verwendet, aber diese wird immer seltener.
Was die Besten betrifft Wert für diese Optionen, das hängt ganz von Ihrem Anwendungsfall ab. Wenn Sie alte Anwendungen unterstützen müssen, die altes Verhalten erwarten, haben Sie möglicherweise keine Wahl, die Datenbankeinstellungen auf OFF
zu belassen . Wenn Sie eine Anwendung haben, die eine Verbindung über eine alte Bibliothek herstellt, aber wirklich eine moderne SQL-Semantik erwartet, möchten Sie sie vielleicht ON
schalten . Für alle anderen Anwendungen werden diese Optionen wahrscheinlich bereits von der Anwendung selbst auf Sitzungsbasis auf ihre (falschen) korrekten Werte gesetzt, und was Sie konfigurieren, spielt sowieso keine Rolle.
Eine Diskussion über jede einzelne Option und wann Sie sie ON
einschalten möchten oder OFF
würde die Grenzen einer vernünftigen Antwort überschreiten. Konsultieren Sie die Dokumentation zu jedem von ihnen und formulieren Sie Ihre eigenen Best Practices. Sie können Dinge wie den SET
lassen Optionsanforderungen für Indizes auf berechneten Spalten
führen Sie, die eine Reihe von Optionen erfordern, um ON
zu sein bevor Sie sie überhaupt erstellen können (und sie werden im Allgemeinen als eine nette Sache angesehen).