我偶然发现了这个定义:
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/其他内容。