What's the difference between equality (=) and inequality () on BIT field in SQL Server?
They seem logically equivalent.

They are.  Even with ANSI_NULLS OFF &quot;a SELECT statement that uses WHERE column_name &lt;&gt; XYZ_value returns all rows that are not XYZ_value and that are not NULL.&quot;
I found an old feedback item for this here, you can go vote for it.