| Termin | Definicja |
|---|---|
| Opcje zgodności ANSI | Opcje zgodności ANSI to ustawienia sesji, np. ANSI_NULLS, wpływające na sposób porównywania wartości i obsługę błędów. Rola ustawień ANSI w sesji SQLOpcje zgodności ANSI to zestaw ustawień sesji języka SQL, które określają, jak silnik interpretuje wybrane konstrukcje zapytań. Nie są one osobnym typem danych ani formatem pliku. Działają w kontekście połączenia z bazą danych i mogą wpływać między innymi na porównywanie wartości NULL, sposób wykonywania operacji arytmetycznych, kontrolę przepełnienia oraz reakcję na błędy podczas zapisu danych. Ta sama instrukcja może więc zachować się inaczej w dwóch sesjach, jeżeli połączenia zostały utworzone z odmiennymi ustawieniami. Określenie ANSI odnosi się do zgodności z regułami kojarzonymi ze standardem SQL opracowywanym przez organizacje normalizacyjne. W praktyce konkretna lista opcji, ich nazwy oraz wartości domyślne zależą od używanego silnika. Z tego powodu przed zmianą ustawień trzeba sprawdzić dokumentację danego systemu oraz sposób, w jaki sterownik lub aplikacja inicjuje nowe połączenie. Ustawienia sesji nie muszą być trwałą właściwością całej bazy. ANSI_NULLS i porównywanie wartości NULLNajczęściej przywoływaną opcją jest ANSI_NULLS. W klasycznej logice SQL wartość NULL oznacza brak znanej wartości, a nie zwykły tekst ani liczbę. Porównanie kolumny z NULL za pomocą operatora równości, na przykład W SQL Server ustawienie ANSI_NULLS określało historycznie sposób interpretacji porównań z NULL przy użyciu operatorów Wpływ opcji na błędy i zapisywanie danychInne ustawienia zgodności ANSI mogą decydować o tym, czy silnik przerwie instrukcję po wykryciu błędu, czy jedynie zwróci ostrzeżenie albo specjalny wynik. Przykładowo operacja arytmetyczna wykonywana na danych może doprowadzić do dzielenia przez zero, przepełnienia typu liczbowego lub utraty części wartości przy konwersji. Zachowanie zależy od reguł konkretnego silnika i zestawu aktywnych opcji. Dlatego sama treść komunikatu o błędzie nie zawsze wystarcza do odtworzenia problemu; trzeba również znać ustawienia sesji, typy danych oraz kolejność wykonywanych instrukcji. Opcje ANSI mają znaczenie także przy instrukcjach Rozpoznawanie niezgodności ustawień w praktyceAnalizę problemu należy rozpocząć od ustalenia silnika bazy danych, wersji sterownika i rzeczywistych wartości opcji aktywnych w połączeniu, w którym występuje błąd. Następnie warto porównać zachowanie tego samego zapytania w sesji aplikacji oraz w narzędziu administracyjnym. Różnica między tymi środowiskami może wynikać z ustawień inicjalizowanych przez sterownik, biblioteki dostępu do danych albo kod otwierający połączenie. Sam fakt, że zapytanie działa ręcznie, nie dowodzi więc poprawności jego wykonania z poziomu programu. Podczas diagnostyki trzeba sprawdzić użycie operatorów |