SQLServerはNullと空文字を区別する
今までずっとOracleを使ってきましたが、最近SQLServerを使うことが増えてきました。
そこで、なんで?と思うことがありました。
SQL Serverは空白、空文字(Empty)、Nullを厳密に区別する
Oracleだと、UPDATE xxxx SET cd=”;
と指定しても、NULLで登録されます。
ですが、SQLServerの場合は、そのまま空文字が登録されます。
こちらの方が自然なのですが、Oracleに慣れていると逆に不自然です。
条件指定する際には、IS NULLと=”を合わせる必要があるので、注意が必要です。
ForeignKeyカラムの場合、空文字の場合は、値が入っているとみなされるため、対象テーブル側に空文字キーが登録されていない場合は外部キー制限エラーになってしまいます。
また、これで慣れるとOracleに戻ったときに混乱するんだろうな
== ランキングに参加しています。ぜひクリックお願いします ==
[C#] EXEとDLLをマージして1つのEXEファイルにする [C#] LINQを使ったファイル一覧の取得方法