[英]Can not add a column to existing table
我有桌子。 三列的支出如下
ExpenseId int NOT NULL,
ExpenseName varchar(50) NOT NULL,
Invalid bit NOT NULL
要添加新列( OldCode char(4) not null
),我对Microsoft SQL Server Management Studio中的表使用了设计功能。 但我得到以下错误
“费用”表
-无法修改表格。 无法将值NULL插入表'TransportSystemMaster.dbo.Tmp_Expenses'的'OldCode'列中; 列不允许为空。 INSERT失败。 该语句已终止。
顺便说一句,我已经能够将具有相同规格的同一列添加到同一数据库的其他表中。
有什么帮助吗?
您的表由现有记录组成
并且您正在推送类型为NOT NULL
的新列。
因此对于较早的记录,数据必须是某些东西。
尝试这样的事情
ALTER TABLE MY_TABLE ADD Column_name INT NULL
GO
UPDATE MY_TABLE <set valid not null values for your column>
GO
ALTER TABLE MY_TABLE ALTER COLUMN Column_name INT NOT NULL
GO
由于OldCode
为NOT NULL
,因此您应该为其指定一个默认值。
当表上有一些行时,您不能添加不可为空的列,您应该为其提供默认值
Alter Table table_name add OldCode int not null DEFAULT(0);
您必须为表的所有4个字段指定值,这纯粹是因为在设计表时,您将列的定义设置为不为null。 再次,您将添加一个名为OldCode的新列,并将其设置为非null,所有就绪的现有记录都没有值。 所以这就是它抱怨的原因
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.