在列上允许 NULL
值通常是为了允许表示不存在的值。使用 NVARCHAR
时,可能会出现空字符串,而无需将列设置为 NULL
。在大多数情况下,我看不到带有空字符串的 NVARCHAR
与此类列的 NULL
值之间的语义差异。
将列设置为 NOT NULL
使我不必处理代码中 NULL
值的可能性,而且最好不必使用“的不同表示形式”无值”(NULL
或空字符串)。
将我的 NVARCHAR
列设置为 NOT NULL
是否会遇到任何其他问题。表现?存储大小?关于客户端代码中值的使用,我忽略了什么吗?
最佳答案
NULL
表示列中的值缺失/不适用。空白字符串是不同的,因为它是实际值。从技术上讲,NULL
没有数据类型,在本例中,空字符串是 nvarchar。
我看不出使用默认值而不是 NULL
值有任何问题。
事实上,这可能是有益的,因为您不必担心在任何查询中满足 NULL
值
例如
Select Sum(TotalPrice) as 'TotalPrice' From myTable Where CountOfItems > 10
比
容易得多
Select Sum(IsNull(TotalPrice,0)) as 'TotalPrice' From myTable Where IsNull(CountOfItems,0) > 10
您应该在 DDL 中使用默认约束,以确保数据中不会出现恶意 NULL
。
关于sql - (NOT) NVARCHAR 列为 NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3012885/