我希望add
column
same value
跨行到表ALTER TABLE dbo.MyTable
ADD MyColumnName VARCHAR(20) NULL
DEFAULT 'A201412'
WITH VALUES
。我用这个:
{{1}}
它几乎可以正常工作,但它会为列创建一些愚蠢的约束。其他现有列没有任何约束。如何创建没有约束的列?
答案 0 :(得分:1)
“愚蠢”约束是DEFAULT
关键字真正用于的原因
创建列时使用DEFAULT
表示在列的INSERT
中未指定值时将使用该值,例如
CREATE TABLE test (
a Int
, b Varchar(5) DEFAULT 'foo'
);
INSERT INTO test(a) VALUES (1)
将生成行
a | b
1 | foo
而不是行
a | b
1 | NULL
正如戈登已经说过的,不要添加DEFAULT
,然后使用UPDATE
将初始值放在新列中
ALTER TABLE dbo.MyTable ADD MyColumnName VARCHAR(20);
UPDATE dbo.MyTable SET MyColumnName = 'A201412'
答案 1 :(得分:0)
只是不要添加default
子句。只需使用:
ALTER TABLE dbo.MyTable ADD MyColumnName VARCHAR(20);