On a note of maintinability/style.. it's better to use complete inserts i.e.
INSERT INTO tablex (field1, field2, field3) VALUES ('x','y','z')
over incomplete inserts i.e.
INSERT INTO tablex('x','y','z')
Performing the following:
ALTER TABLE tablex ADD field4 varchar(20)
breaks your incomplete insert, since you are not specifying directly which fields the values being inserted are mapped to, it expects your insert to include a value for field4.
If you have an app that uses this table but will never make use of the new field: field4, then you have no need to alter that app. Leaving incomplete inserts lying around in a script is a recipe for disaster.
p.s. I learned this the hard way.