我有100行的表格,我正在添加默认值的新列,如下所示。
ALTER TABLE AccountDetails
ADD
UpdatedOn DATETIME DEFAULT GETDATE(),
UpdatedBy VARCHAR(50) DEFAULT 'System'
执行此alter语句后,新列将添加到表中...这是完美的!但是,这些列的现有行的值将为NULL。
默认情况下是否存在默认值,而不是执行单独的更新语句以使这些列明确更新默认值?
答案 0 :(得分:0)
ALTER TABLE {TABLENAME}
ADD {COLUMNNAME} {TYPE} {NULL|NOT NULL}
CONSTRAINT {CONSTRAINT_NAME} DEFAULT {DEFAULT_VALUE}
[WITH VALUES]
答案 1 :(得分:-1)
我自己得到了答案。如果我们在alter语句中也使用NOT NULL约束,那么在更改表以添加新列时,默认值将应用于新列,并且不会违反非null约束。
ALTER TABLE AccountDetails
ADD
UpdatedOn DATETIME NOT NULL DEFAULT GETDATE(),
UpdatedBy VARCHAR(50) NOT NULL DEFAULT 'System'