Desktop productivity for business analysts and programmers

Programatically delete permanent dataset

Reply
Contributor
Posts: 73

Programatically delete permanent dataset


HEllo SAS EG users,

I intend to use program to delete permanent dataset once I read it into WORK library so that I can process new data and save it as the same permanent dataset at end of the session.

What is the best way to:

a) Replace existing permanent dataset using datastep?

OR

b) Delete existing permanent dataset using datastep?

Thanks,

Dhanashree

PROC Star
Posts: 1,146

Re: Programatically delete permanent dataset

You don't actually need to delete your permanent dataset to replace it.

Assume you have mylib.testds

The following code:

data work.testds;

set mylib.testds;

... processing ...

run;

data mylib.testds;

set work.testds;

run;

will replace your permanent dataset.

However, if you want to delete it, I like:

proc sql;

drop table mylib.testds;

quit;

Super User
Posts: 19,146

Re: Programatically delete permanent dataset

What happens if your process fails in the middle, ie power outage, coffee spills on CPU, data you expect doesn't exist Smiley Happy

PROC Star
Posts: 1,146

Re: Programatically delete permanent dataset

Party pooper! :smileysilly:

Community Manager
Posts: 2,889

Re: Programatically delete permanent dataset

For the error situation, SAS has an option for that (of course!).  You can use the NOREPLACE option to prevent the accidental replacement of a data set when an error occurs.

And as far as deleting a data set outright, let's not forget about our recently resurrected friend, PROC DELETE.

Chris

PROC Star
Posts: 1,146

Re: Programatically delete permanent dataset

Oh my goodness!

I have my original SAS manual, from back when it was one book and ran on the mainframe, and I've NEVER heard of PROC DELETE!

It must work for the CIA...or the NSA...or the KGB!

I've wanted this functionality for YEARS, and it was under my nose the whole time. Gack!

Super User
Super User
Posts: 6,845

Re: Programatically delete permanent dataset

A.

That is how SAS already does it.

If you write:

data mylib.x ;

  set work.x;

run;

SAS will create a whole new file named x.sas7bdat in the directory that MYLIB points to.  Once it is finished it then deletes the original x.sas7bdat and renames the file that it created.

Ask a Question
Discussion stats
  • 6 replies
  • 396 views
  • 0 likes
  • 5 in conversation