簡體   English   中英

無法將列添加到現有表

[英]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

由於OldCodeNOT NULL ,因此您應該為其指定一個默認值。

當表上有一些行時,您不能添加不可為空的列,您應該為其提供默認值

Alter Table table_name add OldCode int not null DEFAULT(0);

您必須為表的所有4個字段指定值,這純粹是因為在設計表時,您將列的定義設置為不為null。 再次,您將添加一個名為OldCode的新列,並將其設置為非null,所有就緒的現有記錄都沒有值。 所以這就是它抱怨的原因

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM