/*This program adds a prefix to all the variables in a data set.*/ %let old=sashelp.shoes; %let new=newdataname; /*it is okay for the old name and the new name to be the same*/ %let prefix=abcd_; data XXX;set &old; run; PROC SQL NOPRINT; SELECT TRIM(NAME)||"=&prefix"||TRIM(NAME) INTO :VARLIST SEPARATED BY ' ' FROM DICTIONARY.COLUMNS WHERE LIBNAME EQ "WORK" AND MEMNAME EQ "XXX" ORDER BY VARNUM; QUIT; PROC DATASETS LIBRARY=WORK NOLIST; MODIFY XXX; RENAME &VARLIST; QUIT; data &new; set XXX; run;