I have two tables t1
and t2
. Both have id
and name
columns. The name column of t1
is defined as not null and it has the default value of 'Peter'.
I want to insert all the values from t2
into my t1
table. But I have some null values in t2
table. When I try to insert the values:
Insert into t1
select *
from t2;
It throws this error:
Msg 515, Level 16, State 2, Line 1
Cannot insert the value NULL into column 'Name', table 'T1'; column does not allow nulls.
Is there any possibilities to set the default value to the column when we try to insert
the null
value.
First Solution,
insert into t1
select id,isnull(name,'Peter') from t2
Second solution
ALTER TABLE T1 ALTER COLUMN name varchar(255) NULL
insert into t1
select id,name from t2
ALTER TABLE T1 ALTER COLUMN name varchar(255) NOT NULL