Assign result of Boolean Logic statements to bit field in T-sql
according to [this question][1], I can't assign the result of a boolean logic statement into a bit field.  My problem is that I am working on a creation script and I have a few dependent flags that require a boolean statement to complete. This script will start as all nulls and the user just enters the data they want to.  The script will detect if the record already exists.  If so, it will update only the parameters that are not null.  If it doesn't exist, the script will create a new record.  I am using sql server 2005.

I have the insert statement figured out using `ISNULL(@Setting1, 0)` to set a default value when the variable is not assigned.  My problem comes with one particular setting which is dependent on 2 of the setting flags.  I'd also like to see a solution that could support another setting flag if I needed to add one.


    DECLARE @Setting1 bit
    DECLARE @Setting2 bit
    DECLARE @Setting3 bit
    
    --... code snipped for setting the value
    
    UPDATE
        MyTable
    SET
        EnableSetting1 = ISNULL(@Setting1, EnableSetting1),
        EnableSetting1 = ISNULL(@Setting2, EnableSetting2),
        EnableSetting1 = ISNULL(@Setting3, EnableSetting3),
        EnableComplexSetting1 = ISNULL(@Setting1, EnableComplexSetting1),
        EnableComplexSetting2 = ?
    WHERE
        Id = @MyId

Logically, the `?` would look like `ISNULL(@Setting2, EnableSetting2) OR ISNULL(@Setting3, EnableSetting3)` but that is obviously incorrect.  How should I set the complex setting 2?  How would I do it if logically it was `ISNULL(@Setting2, EnableSetting2) OR ISNULL(@Setting3, EnableSetting3) OR ISNULL(@Setting4, EnableSetting4)`, etc?


  [1]: http://stackoverflow.com/questions/3736056/tsql-is-returning-boolean-is-not-possible

Assign result of Boolean Logic statements to bit field in T-sql
===

according to [this question][1], I can't assign the result of a boolean logic statement into a bit field.  My problem is that I am working on a creation script and I have a few dependent flags that require a boolean statement to complete. This script will start as all nulls and the user just enters the data they want to.  The script will detect if the record already exists.  If so, it will update only the parameters that are not null.  If it doesn't exist, the script will create a new record.  I am using sql server 2005.

I have the insert statement figured out using `ISNULL(@Setting1, 0)` to set a default value when the variable is not assigned.  My problem comes with one particular setting which is dependent on 2 of the setting flags.  I'd also like to see a solution that could support another setting flag if I needed to add one.


    DECLARE @Setting1 bit
    DECLARE @Setting2 bit
    DECLARE @Setting3 bit
    
    --... code snipped for setting the value
    
    UPDATE
        MyTable
    SET
        EnableSetting1 = ISNULL(@Setting1, EnableSetting1),
        EnableSetting1 = ISNULL(@Setting2, EnableSetting2),
        EnableSetting1 = ISNULL(@Setting3, EnableSetting3),
        EnableComplexSetting1 = ISNULL(@Setting1, EnableComplexSetting1),
        EnableComplexSetting2 = ?
    WHERE
        Id = @MyId

Logically, the `?` would look like `ISNULL(@Setting2, EnableSetting2) OR ISNULL(@Setting3, EnableSetting3)` but that is obviously incorrect.  How should I set the complex setting 2?  How would I do it if logically it was `ISNULL(@Setting2, EnableSetting2) OR ISNULL(@Setting3, EnableSetting3) OR ISNULL(@Setting4, EnableSetting4)`, etc?


  [1]: http://stackoverflow.com/questions/3736056/tsql-is-returning-boolean-is-not-possible
