2013-03-11 8 views
5

Ich versuche, eine Abfrage zu schreiben, die Tabelleninformationen aus einer SQL CE Datenbank erhält, bereit in C#, später in XML exportiert werden. Ich brauche eine der Spalten mit dem Namen 'IDENT' mit einem booleschen Wert (um anzuzeigen, ob es sich offensichtlich um die Identitätsspalte handelt).Reverse-Boolean (Bit) -Wert in SQL CE Select-Anweisung

Hierzu ich Überprüfung mich, ob die AUTOINC_SEED Spalte null ist, wie folgt:

select isnull(AUTOINC_SEED) as IDENT from information_schema.columns

Doch diese liefert TRUE für Nicht-Identität Spalten und FALSCH für Identitätsspalten! Gibt es eine Möglichkeit, den booleschen Wert in der SELECT-Anweisung umzukehren?

Edit: Ich bin mir bewusst, dass ich eine case-Anweisung tun könnte, um dieses spezielle Problem zu lösen, aber es hat mich neugierig auf das Invertieren boolescher (Bit-) Werte in SQL.

+0

Haben Sie versucht, meine SQL Server Compact Scripting-API, können Sie alle relevanten Schemainformationen für Sie? – ErikEJ

+0

@ErikEJ Könnten Sie mir bitte einen Link dazu geben? –

+0

Sie finden es unter http://exportsqlce.codeplex.com – ErikEJ

Antwort

12

Der Karat (^) in SQL Server ist der Operator bitwise exclusive OR.

Da 1^1 gleich 0, und 1^0 gleich 1 ist, können Sie einfach tun:

SELECT (1^[YourBitColumn]) as InverseBit 

ich SQL CE nicht praktisch, entweder, aber da SQL CE dies zu haben scheint, glaube ich, die folgende Abfrage sollte den Trick machen:

select (1^AUTOINC_SEED) as IDENT from information_schema.columns 
+0

Sorry hatte nur eine Chance, es zu versuchen. Ja, das Karat hat funktioniert - obwohl ich die 1 durch eine 0 ersetzen musste, so wählen Sie (0^AUTOINC_SEED) als IDENT aus. Es war nicht so sehr, dass ich Hilfe brauchte, mehr, dass ich neugierig war. Es kann schließlich mit einer "Fall" -Aussage gelöst werden - aber danke für die Beantwortung der Frage und die Befriedigung meiner Neugier! –

+0

sieht aus wie Tilda macht den Trick (~) http://Stackoverflow.com/a/177893/1579626 Siehe auch https://msdn.microsoft.com/en-us/library/ms173468.aspx –