How do you use the BIT data type to store boolean values in SQL Server?
Posted by GraceDv
Last Updated: July 04, 2024
In SQL Server, the BIT data type is used to store boolean values, which can represent three possible states: 0, 1, or NULL. Here's how you can use the BIT data type to handle boolean values in SQL Server:
1. Defining a Table with a BIT Column
When creating a new table, you can define a column with the BIT data type:
CREATE TABLE ExampleTable (
    ID INT PRIMARY KEY,
    IsActive BIT
);
In this example, the IsActive column will hold boolean values indicating whether something is active (1) or not (0).
2. Inserting Values
You can insert values into a BIT column by using 0, 1, or you can omit the column (in which case it will default to NULL if you allow NULLs):
INSERT INTO ExampleTable (ID, IsActive) VALUES (1, 1);  -- IsActive is true
INSERT INTO ExampleTable (ID, IsActive) VALUES (2, 0);  -- IsActive is false
INSERT INTO ExampleTable (ID, IsActive) VALUES (3, NULL); -- IsActive is unknown
3. Querying the Table
You can query the table to retrieve values stored in the BIT column:
SELECT ID, IsActive 
FROM ExampleTable 
WHERE IsActive = 1;  -- retrieves all rows where IsActive is true
4. Updating BIT Values
You can update the values in the BIT column as follows:
UPDATE ExampleTable 
SET IsActive = 0 
WHERE ID = 1;  -- Set IsActive to false for the record with ID 1
5. Using BIT in Conditional Statements
You can also use the BIT type in conditional statements:
SELECT 
    ID, 
    CASE 
        WHEN IsActive = 1 THEN 'Active' 
        WHEN IsActive = 0 THEN 'Not Active' 
        ELSE 'Unknown' 
    END AS Status
FROM ExampleTable;
6. Result Interpretation
- 1 indicates TRUE/Active - 0 indicates FALSE/Not Active - NULL indicates an unknown state
Conclusion
The BIT data type is a straightforward and efficient way to store boolean values in SQL Server. Use it for any scenario requiring a true/false or active/inactive flag, and remember that you can also allow NULL values if needed for representing an unknown state.