opcje dopuszczania wartości null i trzy wartości Logic porównania
Jeśli znasz SQL Server typy danych, można znaleźć podobne semantyka i precyzję w System.Data.SqlTypes obszar nazw w .NET Framework. Istnieją pewne różnice, a w tym temacie omówiono najważniejsze tych różnic.
Wartości NULL
Podstawowa różnica pomiędzy macierzystym standardowe typy danych (CLR) środowiska wykonawczego języka i SQL Server typy danych to, że pierwsza nie zezwalaj na wartości NULL podczas ostatniego zapewniają pełną wartość NULL semantyka.
Porównania mają wpływu na wartości NULL.Podczas porównywania dwóch wartości x i y, jeśli x lub y ma wartość NULL, a następnie ocenić niektóre porównań logicznych do wartości nieznany, a nie wartość true lub false.
Typ danych SqlBoolean
The System.Data.SqlTypes namespace introduces a SqlBoolean type to represent this 3-value logic.Porównanie dowolnego SqlTypes Zwraca SqlBoolean Typ wartości. Nieznany wartość jest reprezentowana przez wartość null SqlBoolean Typ. Właściwości IsTrue, IsFalse, a IsNull służą do sprawdzenia wartości SqlBoolean Typ.
Operacje, funkcje i wartości NULL
Wszystkie operatory arytmetyczne (+,-, *, /, %), operatory bitowe (~, &a |), a większość funkcje zwracają wartość NULL, jeśli operandów i argumentów SqlTypes to wartość NULL. The IsNull właściwość always returns a true or false value.
Precyzja
Typy danych Liczba dziesiętna w .NET Framework Środowisko CLR mają różne wartości maksymalnej, niż te typy danych liczbowych i dziesiętne w SQL Server. Ponadto w .NET Framework Typy danych Liczba dziesiętna CLR założono maksymalnej precyzji. W CLR dla SQL Server, jednak SqlDecimal zapewnia te same maksymalnej precyzji i skali i tego samego semantyka jako typ danych dziesiętny w SQL Server.
Przepełnienie Detection
W .NET Framework CLR, dodanie dwóch liczb bardzo dużych nie może zgłosić wyjątek. Zamiast tego Jeśli nie wyboru operator został użyty, zwracany wynik może "otacza" jako ujemną liczbę całkowitą.W System.Data.SqlTypes, wyjątki są generowane dla wszystkich przepełnienie i niedomiar błędy i błędy dzielenie przez zero.