Firstly, have you also considered your 'ExternalTables' and/or 'WorkTables'???, you will most likely have lots of these also containing columns which you will need to update.
I'd recommend you take a look at
http://www2.sas.com/proceedings/forum2008/134-2008.pdf before you do anything.
To update your columns, you simply need to specify the following statement for each column inside an UpdateMetadata request :
How you do the update statement is up to you, but personally i'd use the Metadata Utility, where you just select the UpdateMetadata tab, paste in your column statements as defined above and hit execute. Voila, job done.
If you want to go through the code route, you want something like this (I won't go into detail as I'm sure you'll work it out) :
data _null_;
set work.newcols end=done;
file ColsXML;
if _n_ = 1 then
put '
' /
' '
;
str = '
' SASColumnLength="' || compress(SASColumnLength) || '"' || '"/>'
;
if done then
put ' ' /
'A0000001.A50URHMK' /
'SAS' /
'268435456' /
'' /
''
;
run;
proc metadata in=ColsXML ;
run ;