在SQL中向不带约束的表中添加新列
我想在SQL中向不带约束的表中添加新列,sql,sql-server,Sql,Sql Server,我想将列和值相同的跨行添加到表中。我用这个: ALTER TABLE dbo.MyTable ADD MyColumnName VARCHAR(20) NULL DEFAULT 'A201412' WITH VALUES 它几乎可以正常工作,但它会对列创建一些愚蠢的约束。其他现有列没有任何约束。如何创建没有约束的列?只需不添加default子句即可。只需使用: ALTER TABLE dbo.MyTable ADD MyColumnName VARCHAR(20); “愚蠢”的约束是DEFA
将列和值相同的跨行添加到表中。我用这个:
ALTER TABLE dbo.MyTable
ADD MyColumnName VARCHAR(20) NULL
DEFAULT 'A201412'
WITH VALUES
它几乎可以正常工作,但它会对列创建一些愚蠢的约束。其他现有列没有任何约束。如何创建没有约束的列?只需不添加default
子句即可。只需使用:
ALTER TABLE dbo.MyTable ADD MyColumnName VARCHAR(20);
“愚蠢”的约束是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
正如Gordon已经说过的,不要添加默认值
,然后使用更新
将初始值放入新列中
ALTER TABLE dbo.MyTable ADD MyColumnName VARCHAR(20);
UPDATE dbo.MyTable SET MyColumnName = 'A201412'