Допустимость значений NULL и трехзначная логика сравнения
Применимо к:SQL Server
Если вы знакомы с типами данных SQL Server, вы найдете аналогичную семантику и точность в пространстве имен System.Data.SqlTypes в платформа .NET Framework. Однако существуют определенные различия. В этом разделе описаны самые важные из них.
Значения NULL
Основное различие между типами данных среды CLR для машинного языка и типами данных SQL Server заключается в том, что ранее они не допускают значения NULL, а последний — полную семантику NULL.
Значения NULL влияют на результаты сравнений. При сравнении двух значений x и y, если x или y имеет значение NULL, то результатом некоторых логических сравнений будет значение UNKNOWN, а не TRUE или FALSE.
Тип данных SqlBoolean
Пространство имен System.Data.SqlTypes представляет тип SqlBoolean для представления этой логики 3-значений. Сравнения между любыми sqlTypes возвращают тип значения SqlBoolean . Значение UNKNOWN представлено значением NULL типа SqlBoolean . Свойства IsTrue, IsFalse и IsNull предоставляются для проверка значения типа SqlBoolean.
Операции, функции и значения NULL
Все арифметические операторы (+, -, *, /, побитовые операторы (~, &, и |), а большинство функций возвращают значение NULL, если какие-либо операнды или аргументы SqlTypes имеют значение NULL. Свойство IsNull всегда возвращает значение true или false.
Точность
Десятичные типы данных в среде CLR платформа .NET Framework имеют разные максимальные значения, отличные от числовых и десятичных типов данных в SQL Server. Кроме того, в платформа .NET Framework типах десятичных данных CLR предполагается максимальная точность. Однако в среде CLR для SQL Server SqlDecimal обеспечивает ту же максимальную точность и масштаб, а также ту же семантику, что и десятичный тип данных в SQL Server.
Обнаружение переполнений
В среде CLR платформа .NET Framework добавление двух очень больших чисел может не вызывать исключение. При этом если не использовался оператор проверки, возвращенный результат может «обернуться по кругу» и превратиться в отрицательное целое число. В System.Data.SqlTypes исключения создаются для всех ошибок переполнения и переполнения, а также ошибок деления на ноль.
См. также
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по