SQL Server 2008 – Unsigned-Integer-Datentypen

Ich bin mit SQL SERVER 2008 habe ich eine Reihe von INT, SMALLINT-Felder in meinen verschiedenen Tabellen, Und ich weiß, Sie alle werden 0 oder größer als 0 ist, d.h. ich kann Sie ohne Vorzeichen.

Gibt es eine einfache Möglichkeit der Erstellung/Verwendung von Unsigned Datentypen ODER muss ich die Create type->Regel->Verwenden, die Erstellt Art; wie angegeben in der folgenden Artikel?

http://www.julian-kuiters.id.au/article.php/sqlserver2005-unsigned-integer

Wenn das der einzige Weg, um die Verwendung nicht signierter in SQL gibt es keine Nachteile/Nachteil bei der Verwendung es?

  • Wenn der Grund ist, dass Sie nur wollen, um sicherzustellen, dass der Wert größer als null, dann können Sie eine einfache CHECK - Einschränkung für die Spalte.
  • Durch die Einnahme Nicht, wir können die Speicher - /storage-in einer besseren Art und Weise. Und der Grund ist NICHT, dass der Wert größer ist als 0 ODER nicht. Es ist rein aus Gründen der Einsparung von Speicher.
  • Sieht aus wie Sie versuchen, etwas zu optimieren, sollten Sie nicht. Lassen Sie die DBMS verwalten Sie Ihren Speicher, es ist ganz gut.
  • Ich werde lakhs von Zeilen in meiner Tabelle, und es ist eine Spalte, deren Werte im Bereich von 50000-60000, wird es nicht eine gute Idee, um als unsigned smallint. Auch habe ich noch einen Fall, wo ein Unsigned Int verwendet werden könnte, statt Bigint.
  • Verwenden Sie einfach einen integer und fügen Sie entweder eine CHECK constraint oder Trigger, um die Werte zu überprüfen.
  • Der Artikel, den Sie verlinken, verwendet rules die sind veraltet. Sie können auch erstellen, CLR UDT jetzt.

InformationsquelleAutor user899055 | 2011-09-01
Schreibe einen Kommentar