You can check for all-missing variables like that:
data have;
input a b c;
datalines;
1 . .
3 . .
5 . .
;
proc summary data=have;
var _numeric_;
output out=max (drop=_type_ _freq_) max()=;
run;
proc transpose data=max out=vars (where=(col1 = .));
var _all_;
run;
proc sql noprint;
select _name_ into :dropvars separated by " "
from vars;
quit;
%put &=dropvars;
and use the macro variable in a DROP statement or DROP= dataset option.
... View more