NULL通常允许在列上允许值以允许表示值的缺失.在使用时NVARCHAR,已经有可能有一个空字符串,而不设置列NULL.在大多数情况下,我看不到NVARCHAR空字符串和NULL这样一列的值之间的语义差异.
设置列使NOT NULL我不必处理NULL代码中值的可能性,并且不必对"无值"(NULL或空字符串)的不同表示感觉更好.
我将NVARCHAR列设置为是否会遇到任何其他问题NOT NULL.性能?存储大小?我在客户端代码中使用值时忽略了什么?
ANULL表示该列中的值缺失/不适用。空白字符串是不同的,因为它是实际值。从技术上讲,ANULL没有数据类型,在本例中,A 为空白字符串,即 nvarchar。
我看不出使用默认值而不是NULL值有任何问题。
事实上,这可能是有益的,因为您不必担心满足NULL任何查询中的值
例如
Select Sum(TotalPrice) as 'TotalPrice' From myTable Where CountOfItems > 10
Run Code Online (Sandbox Code Playgroud)
比
Select Sum(IsNull(TotalPrice,0)) as 'TotalPrice' From myTable Where IsNull(CountOfItems,0) > 10
Run Code Online (Sandbox Code Playgroud)
您应该在 DDL 中使用默认约束,以确保NULL数据中不会出现恶意行为。