Boolean und SQL-Server-Bit

05/02/2009 - 13:17 von Lutz Uhlmann | Report spam
Hallo NG!

Habe hier ein Problem nach der Umsetzung eines Projektes von Access-BE auf
SQL-Server 2005 ...

Die alten Boolean (Ja/Nein)-Felder aus Access wurden in den bit-Datentyp auf
dem SQL-Server umgesetzt.

Boolean nutzt -1 als True, bit dagegen die +1. Dies führt zu einigen
Ungereimtheiten bzw. Problemen.

1. In verknüpften Tabellen erscheint in den Ja/Nein-Feldern (bit) auf einmal
eine -1. Das geht soweit, daß ich da eine 1 eingebe und nach dem Speichern
da aber eine -1 angezeigt wird.
2. In manchen alten Abfragen stehen noch Bedingungen der Art "Erledigt=-1",
diese schlagen natürlich fehl, da nur 0, 1 bzw NULL in diesen Feldern stehen
kann. Und sie schlagen fehl, obwohl die Tabelle selber -1 sogar anzeigt
(siehe 1.)

Gibt es irgendwie nen allgemein nen Lösungsweg, um diesen Kuddelmuddel
loszuwerden???

Ich überlege, die bit-Datentypen im SQL-Server auf smallint zu àndern und
dort die Wertemenge auf 0 und -1 zu begrenzen. Würde das Sinn machen???
Hàtte die Typ-Änderung außer der Speichergröße noch andere Nachteile???

Lutz
 

Lesen sie die antworten

#1 Klaus Oberdalhoff
05/02/2009 - 13:40 | Warnen spam
Hi,

Ich überlege, die bit-Datentypen im SQL-Server auf smallint zu àndern und
dort die Wertemenge auf 0 und -1 zu begrenzen. Würde das Sinn machen???



wieso, kann man den Access-Datentyp "bit" auch anders als in Smallint
umsetzen ? Das ist doch gàngige Praxis, nicht nur von mir. Ich selbst mache
sowieso das nie anders. Ich benutze den (mE im SQL Server unsinnigen, da 2
Byte benötigenden) Datentyp Bit "never niemals nie nicht".

Zumal der Datentyp bit - in SQL auch nicht kleiner ist, und wie du richtig
bemerkst statt -1 1 speichert und es mehr als eine Version in Access gibt,
die mit der True / False Umsetzung als Bit ein erklàgliches Problem hat.

mfg

Klaus

Ähnliche fragen