There is a fundamental difference between the insert
and update
statements - insert creates a brand new row, whereas update updates a row that already exists (even if data in a particular column for a row does not yet exist)
What are differences between INSERT and UPDATE in MySQL? - i realize you're sql server but same principle applies.
It sounds like you may actually be trying to update a column value, not insert a new row with a value in a column.
Given the following table and data:
table1
----
Id int primary key identity(1,1)
column1 varchar(50) not null
column6 varchar(50) null
id column1 column6
-----
1 some value null
2 some other value null
note that if you were to attempt your query:
insert into table1(column6) select substring(column1,1,3) from table1
this would attempt to take "some value" and "some other value" into new rows 3 and 4, with null in column1, and the substring values into column6. Note that this would fail because you're attempting to insert rows into table1 with null values (column1) in a not nullable column.
what you (probably) actually want is something like:
update table1
set column6 = substring(column1,1,3)
which will update the table for (in this case all rows) setting column6s value to the substring values of column1