创建表时,将列默认设置为0并将其设置为null是否有意义?

时间:2019-04-10 22:40:27

标签: sql sql-server

我正在查看一个老员工的SQL代码并理解它。他们为什么要设置一个新列,默认为0但将其设置为null。还是在这种情况下,为什么还要麻烦放置NULL。如果您不添加,它将不会接受NULL?

CREATE TABLE Inventory(

Amount INT DEFAULT ((0)) NULL,   --why not just write DEFAULT(0) with no null?
Type   INT DEFAULT ((0)) NOT NULL
)

1 个答案:

答案 0 :(得分:2)

通常,当默认值为0时,列为NOT NULL

但是,这允许在处理中将列设置为NULL 以后。在某些情况下,这很有用。例如,如果该行表示一个项目,而该列表示某个项目中涉及的项目数。那么0可能意味着没有项目。 NULL可能意味着该项目已被(软删除)。

以上内容仅供参考。就个人而言,我将有一个单独的软删除标志。