简体   繁体   中英

Can not add a column to existing table

I have a table viz. expenses with three columns as under

ExpenseId int NOT NULL,
ExpenseName varchar(50) NOT NULL,
Invalid bit NOT NULL

To add a new column ( OldCode char(4) not null ), I used design feature for tables in Microsoft SQL Server Management Studio. But I get following error

'Expenses' table
- Unable to modify table. Cannot insert the value NULL into column 'OldCode', table 'TransportSystemMaster.dbo.Tmp_Expenses'; column does not allow nulls. INSERT fails. The statement has been terminated.

Incidentally I have been able to add same column with same specifications to other tables of the same database.

Any help?

Your Table Consist of Existing Records

and you are pushing a new column of type NOT NULL .

so for older records the data have to be something.

try something like this

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);

You have to specify values for all the 4 fields of the table, its purely because, while designing the table you set the definition of the columns to be not null. Again you are adding a new column called OldCode and setting to be not null, all ready existing records hasn't got a value. So that is the reason its complains

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM