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