プロプログラマ

プログラマーを職業としてます。 Flex,Air,C#,Oracle,HTML+JSの言語ノウハウを中心に情報発信していきます

SQLServerはNullと空文字を区別する

今までずっとOracleを使ってきましたが、最近SQLServerを使うことが増えてきました。
そこで、なんで?と思うことがありました。

SQL Serverは空白、空文字(Empty)、Nullを厳密に区別する

Oracleだと、UPDATE xxxx SET cd=”;
と指定しても、NULLで登録されます。

ですが、SQLServerの場合は、そのまま空文字が登録されます。
こちらの方が自然なのですが、Oracleに慣れていると逆に不自然です。

条件指定する際には、IS NULLと=”を合わせる必要があるので、注意が必要です。
ForeignKeyカラムの場合、空文字の場合は、値が入っているとみなされるため、対象テーブル側に空文字キーが登録されていない場合は外部キー制限エラーになってしまいます。

また、これで慣れるとOracleに戻ったときに混乱するんだろうな

 

== ランキングに参加しています。ぜひクリックお願いします ==

プログラム ブログランキングへ
にほんブログ村 IT技術ブログへ
にほんブログ村

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください