2016-11-09 10 views
1

ビットフィールドは0または1しか格納できないことを理解しています。私は継承しているInfoPathフォームを持ち、フォームからXMLを解析してデータをデータベースに格納しますXMLノードのうち1または2があり、ビットフィールドに格納されています。フィールドに1または2があるかどうかにかかわらず、ビットフィールドは1しか格納されません。私の質問はビットフィールド0を0として格納しますが、0以外の文字も1として格納しますか?だから、2も1として保存されていますか?SQLビットフィールド非ゼロ文字を格納する

答えて

3

はい、0以外の値は、1として挿入されます。 MSDNから

SQL Serverデータベースエンジンは、ビット列のストレージを最適化します。表に8ビット以下の列がある場合、列は1バイトとして格納されます。 9〜16ビットの列がある場合、列は2バイトとして格納されます。以下同様です。 TRUEおよびFALSE

文字列値は、ビット値に変換することができる:TRUEは1に変換され、FALSE 1.

テストするためにビットにゼロ以外の値促進変換0

に変換されます。 SQL:

Create Table Test (A bit); 

Insert Test Values (-1), (0), (1), (2) 

Select * From Test 

結果:

A 
---- 
1 
0 
1 
1 
関連する問題