Since PROC APPEND is a statement in PROC DATASET I think you should at least nest the repeated APPENDs in PROC DATASETS. If SAVE statement is not be appropiate you can just gen a DELETE for the list of APPEND data sets.
data D0912 D0913 D0914 D0915;
set sashelp.class;
run;
%let base=D0912;
proc sql noprint;
select catx(' ','APPEND BASE=',"&base",'DATA=',memname,';') into :append
from dictionary.members
where libname eq 'WORK' and upcase(memname) ne %upcase("&base");
quit;
run;
proc datasets;
&append;
run;
save &base;
run;
quit;