I understand there are multiple questions about this on SO, but I have yet to find a definitive answer of "yes, here's how..."
So here it is again: What are the possible ways to store an unsigned integer value (32-bit value or 32-bit bitmap) into a 4-byte field in SQL Server?
Here are ideas I have seen:
1) Use a -1*2^31 offset for all values
- Disadvantages: need to perform math on the values before reading/writing/aggregating.
2) Use 4 tinyint fields
- Disadvantages: need to concatenate values to perform any operations
3) Use binary(4)
- Disadvantages: actually uses 4 + 2 bytes of space (Edit: varbinary(4) uses 4+2, binary(4) only uses 4)
- Need to work in SqlBinary or cast to/from other types