2015-04-23 2 views
1

У меня есть таблица, а именно: расходы с тремя колоннами, как подНельзя добавить столбец в существующую таблицу

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

Чтобы добавить новый столбец (OldCode char(4) not null), я использовал элемент дизайна для таблиц в Microsoft SQL Server Management Studio. Но я получаю следующее сообщение об ошибке

таблицы «Расходы»
- Невозможно изменить таблицу. Невозможно вставить значение NULL в столбец «OldCode», таблицу «TransportSystemMaster.dbo.Tmp_Expenses»; столбец не допускает нулей. INSERT терпит неудачу. Заявление было прекращено.

Кстати, я смог добавить тот же столбец с теми же спецификациями в другие таблицы той же базы данных.

Любая помощь?

ответ

8

Вашей Таблица Состоит из существующих записей

и вы толкаете новый столбец типа 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 
3

С OldCode является NOT NULL, вы должны указать значение по умолчанию для этого.

3

, когда у вас есть несколько строк на вашем столе, вы не можете добавить столбец, который не NULLABLE вы должны указать значение по умолчанию для этого

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

Вы должны указать значения для всех 4 полей table, потому что, создавая таблицу, вы устанавливаете определение столбцов не равным нулю. Снова вы добавляете новый столбец с именем OldCode и параметр не имеет значения null, все готовые существующие записи не имеют значения. Вот почему он жалуется

Смежные вопросы