NULL 値の許容

列の NULL 値を許容するかどうかで、テーブルの各行のその列に NULL 値を格納できるかどうかが決まります。NULL 値は 0、空白、長さ 0 の文字列 ("" など) のいずれとも異なります。NULL は何も入力されていないという意味であり、一般的には値が不明であるか定義されていないかのどちらかであることを暗黙的に示します。たとえば、AdventureWorks2008R2 データベースの Production.Product テーブルの SellEndDate 列に NULL 値が入力されていても、それはその項目に販売終了日がないという意味ではありません。日付が不明であるかまだ設定されていないことを表します。

注意

NULL 値があるとクエリおよび更新が複雑になるほか、PRIMARY KEY 制約などのように NULL 値を許容する列には使用できない列オプションもあるので、NULL 値は許容しないことをお勧めします。

行を挿入したときに NULL 値を許容する列に値がない場合、データベース エンジンにより NULL 値が格納されます。ただし、DEFAULT 定義または DEFAULT オブジェクトが存在する場合を除きます。NULL キーワードで定義された列の場合は、データ型にかかわらず、また、列に関連付けられたデフォルトがあるかどうかにもかかわらず、ユーザーが明示的に NULL を入力することもできます。NULL 値は引用符で囲まないでください。NULL 値を引用符で囲むと、NULL 値ではなく文字列 "NULL" として解釈されます。

列が NULL 値を許容しない指定にすると、行のその列に常にデータがあることが保証されるので、データの整合性を維持するのに役立ちます。NULL 値が許容されていない場合、テーブルにデータを入力するユーザーはその列に必ず値を入力する必要があり、入力しなければそのテーブル行をデータベースに格納できません。

注意

PRIMARY KEY 制約または IDENTITY プロパティが定義された列は NULL 値を許容する設定にすることはできません。