Ich versuche ein bitweises NICHT in SQL Server auszuführen. Ich möchte so etwas machen:
update foo
set Sync = NOT @IsNew
Hinweis: Ich habe mit dem Schreiben begonnen und die Antwort auf meine eigene Frage herausgefunden, bevor ich fertig war. Ich wollte immer noch mit der Community teilen, da diese Dokumentation auf MSDN fehlte (bis ich sie auch dort zum Community-Inhalt hinzufügte).
sql
sql-server
bit-manipulation
Sogar Mien
quelle
quelle
Antworten:
Ja, der Operator ~ wird funktionieren.
update foo set Sync = ~@IsNew
quelle
Bitweise NICHT: ~
Bitweises UND: &
Bitweises ODER: |
Bitweises XOR: ^
quelle
Fehlt MSDN? http://msdn.microsoft.com/en-us/library/ms173468(SQL.90).aspx
quelle
Der Vollständigkeit halber:
SELECT b, 1 - b FROM (SELECT cast(1 AS BIT) AS b UNION ALL SELECT cast(0 AS BIT) AS b) sampletable
quelle
~ Operator funktioniert nur mit BIT,
versuchen Sie: ~ CAST (@IsNew AS BIT)
quelle