允許 Null 值

資料行的 Null 屬性決定資料表中的資料列是否可在該資料行中包含 Null 值。Null 值或稱為 NULL,並不同於零 (0)、空白或長度為零的字元字串,例如 ""。NULL 代表沒有輸入任何資料。NULL 的出現通常暗示著未知或未定義的值。例如,在 AdventureWorks2008R2 資料庫的 Production.Product 資料表中,SellEndDate 資料行的 Null 值並不代表項目沒有銷售結束日期。NULL 表示日期是未知或尚未設定的。

[!附註]

我們建議您避免允許 Null 值,因為它們會導致查詢與更新更為複雜,而且其他資料行選項 (例如:PRIMARY KEY 條件約束) 並不能用於可為 Null 的資料行。

若您插入資料列時,某個允許 Null 值的資料行沒有包含值, 除非有 DEFAULT 定義或物件存在,否則 Database Engine 將會提供 NULL 值給資料列。以關鍵字 NULL 定義的資料行也可接受使用者明確輸入的 NULL,不管它的資料類型為何,或是否有預設值與它關聯。NULL 值不可放在引號之中,否則將被解譯成字元字串 'NULL',而非 Null 值。

將資料行指定成不允許 Null 值將可確認資料列中的資料行一定包含資料,而有助於維持資料的完整性。若不允許 Null 值,在資料表中輸入資料的使用者必須在資料行中輸入值,否則資料庫將不接受該資料表的資料列。

[!附註]

以 PRIMARY KEY 條件約束或 IDENTITY 屬性定義的資料行不允許 Null 值。