sql >> Databáze >  >> RDS >> Sqlserver

Nejlepší možnosti ANSI při vytváření nové databáze

Výchozí nastavení možností je OFF protože se vší pravděpodobností byla tato databáze vytvořena a skriptována, aniž by se dotkla některého z výchozích nastavení. Když je databáze vytvořena, je v podstatě klonována z model systémové databáze a při zcela nové instalaci SQL Serveru bude nastavení ANSI v databázi OFF , i když některá z těchto nastavení (například ANSI_NULLS ) jsou možnosti, které byste opravdu nikdy nechtěli být OFF pro jakoukoli moderní databázovou aplikaci. Ve skutečnosti v případě ANSI_NULLS v dokumentaci je konkrétně uvedeno, že možnost jej vůbec vypnout je zastaralá , ačkoli to bude pravděpodobně ještě několik let, než tomu tak skutečně bude.

A v tom je ten neduh:tato nastavení jsou stále OFF ve prospěch starých aplikací, které musely tyto možnosti zapnout ON cestu zpět, kdy těžit z jejich dobroty (a zlomových změn). Pokud pro ně relace neurčuje žádné hodnoty, použije se nastavení databáze.

Většina aplikací však dělá zadat tato nastavení v relaci, pokud ne explicitně, pak implicitně prostřednictvím své knihovny pro přístup k datům. Podle dokumentace na SET ANSI_DEFAULTS , který přepíná spoustu nastavení najednou:

DB-Library je stará přístupová knihovna, kterou však stále používají některé starodávné aplikace a volitelně jako záložní zdroj pro věci, jako je FreeTDS, takže občas můžete stále narazit na aplikaci, která záměrně nebo náhodně používá nastavení databáze, ale toto je stále vzácnější.

Pokud jde o nejlepší hodnotu pro tyto možnosti, která zcela závisí na vašem případu použití. Pokud musíte podporovat staré aplikace, které očekávají staré chování, možná nebudete mít jinou možnost ponechat nastavení databáze na OFF . Pokud máte aplikaci, která se připojuje přes starou knihovnu, ale opravdu očekává moderní sémantiku SQL, možná ji budete chtít ON . U všech ostatních aplikací jsou tyto možnosti pravděpodobně již nastaveny pro jednotlivé relace na jejich (nesprávné) hodnoty samotnou aplikací a na tom, co nakonfigurujete, stejně nezáleží.

Diskuse o každé jednotlivé možnosti a o tom, kdy ji chcete ON nebo OFF by překročilo meze rozumné odpovědi. Nahlédněte do dokumentace ke každému z nich a formulujte své vlastní osvědčené postupy. Můžete povolit věci jako SET požadavky na možnosti pro indexy na počítaných sloupcích průvodce, které vyžadují spoustu možností, aby byly ON než je vůbec budete moci vytvořit (a obecně se považují za příjemnou věc).




  1. Jak používat jádro AspNet.Identity v databázi My Sql

  2. Nastavení utf8mb4 pro talent - nefunguje

  3. Rozdíl mezi klíčem, primárním klíčem, jedinečným klíčem a indexem v MySQL

  4. Jak vyřešit uzavření SqlConnection zevnitř ExecuteReader?