SOにはこれについて複数の質問があることは理解していますが、「はい、これが方法です...」という決定的な答えをまだ見つけていません。
繰り返しになりますが、SQL Server の 4 バイト フィールドに符号なし整数値 (32 ビット値または 32 ビット ビットマップ) を格納するには、どのような方法がありますか?
私が見たアイデアは次のとおりです。
1) すべての値に -1*2^31 オフセットを使用する
- 短所: 読み取り/書き込み/集計の前に、値に対して計算を実行する必要があります。
2) 4 つの tinyint フィールドを使用する
- 短所: 操作を実行するために値を連結する必要がある
3) バイナリを使用する(4)
- 欠点: 実際には 4 + 2 バイトのスペースを使用します(編集: varbinary(4) は 4+2 を使用し、binary(4) は 4 のみを使用します)
- SqlBinary で作業するか、他の型との間でキャストする必要がある