Frage

Ich denke speziell über unsigned int.

Hier ist ein Beispiel aus der Praxis: Was tun Sie, wenn Ihre Identität Spalte maxes? Es ist möglich, entweder geht BigInt (8 Byte Speicher statt 4) oder die Anwendung Refactoring negative ganze Zahlen zu unterstützen, und sogar Ihre eigenen Regeln zu schaffen, wie in diese Antwort ; keine dieser beiden Optionen sind optimal.

UInt wäre eine ideale Lösung, aber SQL Server bietet es nicht (wo MySQL der Fall ist).

Ich verstehe, dass nicht signierte Datentypen sind nicht Teil der SQL-Standards (SQL-2003), scheinen aber immer noch wie eine Verschwendung zu mir.

Was ist der Grund nicht mit dieser (in SQL Server oder im Standard)?

War es hilfreich?

Lösung

Wenn ich raten müsste, würde ich sagen, dass sie eine Verbreitung von Arten zu vermeiden versuchen. Generell gibt es nichts, dass eine ganze Zahl ohne Vorzeichen zu tun, dass eine Ganzzahl mit Vorzeichen nicht tun kann. Wie für den Fall, müssen Sie eine Zahl zwischen 2147483648 und 4294967296 Sie wahrscheinlich auf eine 8-Byte-Ganzzahl gehen sollten, da die Zahl auch schließlich 4294967296 überschreiten wird.

Andere Tipps

Zu diesem Zweck Sie -2.147.483.648 als Startwert verwendet werden kann.

Identity(-2147483648, 1)

fand ich eine ähnliche Frage auf Microsoft Connect.

Die Antwort von Jim Hogg (Program Manager) hat einige Vor-und Nachteile des für das Hinzufügen von unsigned int ist. Die wichtigsten con die Regeln ist implizite Typkonvertierungen ein Alptraum richtig zu machen geworden zu implementieren.

Der Antrag wurde geschlossen, wie "Werde nicht Fix".

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top