Hi All
I have a library defined in SAS SMC called DDMD. Every week, I need to register new tables.I want to update Metadata thru a SAS Batch job.
For Example - Last week, I registered tables A, B & C. This week I need to register C, D & E. For the E-Guide user, the next day it should be only 3 tables visible in DDMD library, i.e C, D & E. I recieve theTableNames in a control file. It is possible that physically tables A & B still exists.
I am using the below code, the downside of this code is ... if physically any of the old tables still exists then it will not be deleted. The users will be able to see it.
libname AAA meta library="DDMD" metaout=datareg;
proc sql noprint;
select quote(trim(memname)) into :list separated by " "
from dictionary.tables
where libname="AAA"
;
quit;
%put Value of list: &list.;
proc metalib;
omr (library="DDMD");
update_rule(delete);
select (&list.);
report (type=detail);
run;
The function metadata_delobj can be used to remove the registered table from metadata, no sure that all associated objects are deleted also. New in 9.4m1 is a tool called "sas-delete-object", described in http://support.sas.com/documentation/cdl/en/bisag/68240/HTML/default/viewer.htm#p0zqp8fmgs4o0kn1tt7j....
If you change your SMC DDMD library definition as shown in the screenshot then you don't have to register metadata at all and all tables will show in EG / SAS Studio etc.
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.