MS SQL 在 NOT NULL 字段上显式使用 "default defaults" - 为什么?



我偶然发现了这个定义:

CREATE TABLE dbo.whatever (
  [flBlahBlah]  BIT           DEFAULT ((0)) NOT NULL,
  [txCity]      NVARCHAR (50) DEFAULT ('') NOT NULL,
  [cdFrom]      VARCHAR (10)  DEFAULT ('') NOT NULL
);

我想不出添加这些默认值的原因。NON NULL字符串默认为'',并且位默认为0。有理由定义这些默认值吗?我想念什么吗?这是我不知道的一些最佳练习手册吗?

我只使用:

CREATE TABLE dbo.whatever (
  [flBlahBlah]  BIT           NOT NULL,
  [txCity]      NVARCHAR (50) NOT NULL,
  [cdFrom]      VARCHAR (10)  NOT NULL
);

数据库在MS SQL Server 2012中,现在迁移到Azure数据库。

例如,您从第一批问题创建表。然后像这样插入值

INSERT INTO dbo.whatever (flBlahBlah) VALUES (1)

您将获得1行dbo.whatever

flBlahBlah  txCity  cdFrom
1       

因此,如果您"忘记"将确定默认值的列中插入,则SQL Server会照顾它们。

当您获得表格需要插入新字段时,这非常有用。通过确定默认值,您无需更改与此表一起使用的SP/QUERY/其他内容。

最新更新