The BIT data type is an awkward fit for a SQL database. It doesn’t have just two values, and it can do unexpected things in expressions. What is worse, it is a flag rather than a predicate, and so its overuse, along with bit masks, is a prime candidate for being listed as a ‚SQL Code Smell‘. Joe Celko makes the case.