我偶然發現了這樣的定義:在NOT NULL字段顯式使用「默認默認值」的MS SQL - 爲什麼?
CREATE TABLE dbo.whatever (
[flBlahBlah] BIT DEFAULT ((0)) NOT NULL,
[txCity] NVARCHAR (50) DEFAULT ('') NOT NULL,
[cdFrom] VARCHAR (10) DEFAULT ('') NOT 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數據庫。
因爲'VARCHAR NOT NULL'沒有默認值''''。如果您沒有爲「NOT NULL」字段指定值,則會引發錯誤。沒有系統默認值。 – Siyual
你是什麼意思「默認默認值」?沒有默認值,除非您選擇一些。如果有人'插入任何(txCity)值('hello');',這將適用於版本1,但不適用於沒有默認值的版本。 –
如果您嘗試向該表中插入一行而未指定列的值,則會被阻止。如果沒有明確指定默認值,則不存在automagic默認值。 –