Zulässigkeit von NULL-Werten und Vergleiche mit dreiwertiger Logik
Gilt für: SQL Server
Wenn Sie mit den SQL Server-Datentypen vertraut sind, finden Sie ähnliche Semantik und Genauigkeit im System.Data.SqlTypes-Namespace im .NET Framework. Es gibt jedoch einige Unterschiede, und die wichtigsten dieser Unterschiede werden in diesem Thema behandelt.
NULL-Werte
Ein Hauptunterschied zwischen Datentypen der nativen Common Language Runtime (CLR) und SQL Server-Datentypen besteht darin, dass der frühere Datentyp keine NULL-Werte zulässt, während letztere vollständige NULL-Semantik bereitstellen.
Vergleiche werden durch NULL-Werte beeinflusst. Wenn die beiden Werte x und y verglichen werden und x oder y NULL ist, dann ergeben einige logische Vergleiche den Wert UNKNOWN statt true oder false.
SqlBoolean-Datentyp
Zur Darstellung dieser dreiwertigen Logik wurde im System.Data.SqlTypes -Namespace der SqlBoolean -Typ eingeführt. Vergleiche zwischen beliebigen Werten des Typs SqlTypes ergeben einen Wert des SqlBoolean -Typs. Der UNKNOWN-Wert wird durch den NULL-Wert des SqlBoolean -Typs dargestellt. Die Eigenschaften IsTrue, IsFalseund IsNull dienen zur Überprüfung des Werts eines SqlBoolean -Typs.
Vorgänge, Funktionen und NULL-Werte
Alle arithmetischen Operatoren (+, -, *, /, %), bitweise Operatoren (~, &, und |) und die meisten Funktionen geben NULL zurück, wenn eines der Operanden oder Argumente von SqlTypes NULL ist. Die IsNull -Eigenschaft gibt stets den Wert true oder false zurück.
Präzision
Dezimaldatentypen in .NET Framework CLR weisen unterschiedliche Höchstwerte auf als die numerischen und dezimalen Datentypen in SQL Server. Darüber hinaus wird in den .NET Framework CLR-Dezimaldatentypen die maximale Genauigkeit vorausgesetzt. In der CLR für SQL Server bietet SqlDecimal jedoch die gleiche maximale Genauigkeit und Skalierung sowie die gleiche Semantik wie der Dezimaldatentyp in SQL Server.
Überlauferkennung
In .NET Framework CLR löst das Hinzufügen von zwei sehr großen Zahlen möglicherweise keine Ausnahme aus. Wenn kein Prüfvorgang verwendet wurde, dann wird das zurückgegebene Ergebnis möglicherweise als negative Ganzzahl dargestellt. In System.Data.SqlTypeswerden Ausnahmen für alle Überlauf- und Unterlauffehler sowie Fehler aufgrund einer Division durch 0 ausgelöst.
Weitere Informationen
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für