Language Concepts

Temporary and Permanent SAS Data Sets

Naming SAS Data Sets

SAS data sets can have a one-level name or a two-level name. Typically, names of temporary SAS data sets have only one level and are stored in the WORK library. The WORK library is defined automatically at the beginning of the SAS session and is deleted automatically at the end of the SAS session. Procedures assume that SAS data sets that are specified with a one-level name are to be read from or written to the WORK library. To indicate otherwise, you specify a USER library (see USER Library). For example, the following PROC PRINT steps are equivalent. The second PROC PRINT step assumes that the DEBATE data set is in the WORK library.
proc print data=work.debate;
run;

proc print data=debate;
run;
The SAS system options WORK=, WORKINIT, and WORKTERM affect how you work with temporary and permanent libraries. For more information, see SAS System Options: Reference.
Typically, two-level names represent permanent SAS data sets. A two-level name takes the form libref.SAS-data-set. The libref is a name that is temporarily associated with a SAS library. A SAS library is an external storage location that stores SAS data sets in your operating environment. A LIBNAME statement associates the libref with the SAS library. In the following PROC PRINT step, PROCLIB is the libref and EMP is the SAS data set within the library:
libname proclib 'SAS-library';
proc print data=proclib.emp;
run;

USER Library

You can use one-level names for permanent SAS data sets by specifying a USER library. You can assign a USER library with a LIBNAME statement or with the SAS system option USER=. After you specify a USER library, the procedure assumes that data sets with one-level names are in the USER library instead of the WORK library. For example, the following PROC PRINT step assumes that DEBATE is in the USER library:
options user='SAS-library';
proc print data=debate;
run;
Note: If you have a USER library defined, then you can still use the WORK library by specifying WORK.SAS-data-set

SAS System Options

Some SAS system option settings affect procedure output. The SAS system options listed below are the options that you are most likely to use with SAS procedures:
  • BYLINE|NOBYLINE
  • DATE|NODATE
  • DETAILS|NODETAILS
  • FMTERR|NOFMTERR
  • FORMCHAR=
  • FORMDLIM=
  • LABEL|NOLABEL
  • LINESIZE=
  • NUMBER|NONUMBER
  • PAGENO=
  • PAGESIZE=
  • REPLACE|NOREPLACE
  • SOURCE|NOSOURCE
For a complete description of SAS system options, see the SAS System Options: Reference.

Data Set Options

Most of the procedures that read data sets or create output data sets accept data set options. SAS data set options appear in parentheses after the data set specification. Here is an example:
proc print data=stocks(obs=25 pw=green);
The individual procedure chapters contain reminders that you can use data set options where it is appropriate.
SAS data set options are as follows:
ALTER=
OBS=
BUFNO=
OBSBUF=
BUFSIZE=
OUTREP=
CNTLLEV=
POINTOBS=
COMPRESS=
PW=
DLDMGACTION=
PWREQ=
DROP=
READ=
ENCODING=
RENAME=
ENCRYPT=
REPEMPTY=
FILECLOSE=
REPLACE=
FIRSTOBS=
REUSE=
GENMAX=
SORTEDBY=
GENNUM=
SPILL=
IDXNAME=
TOBSNO=
IDXWHERE=
TYPE=
IN=
WHERE=
INDEX=
WHEREUP=
KEEP=
WRITE=
LABEL=
For a complete description of SAS data set options, see the SAS Data Set Options: Reference.

Global Statements

You can use these global statements anywhere in SAS programs except after a DATALINES, CARDS, or PARMCARDS statement:
comment
ODS
DM
OPTIONS
ENDSAS
PAGE
FILENAME
RUN
FOOTNOTE
%RUN
%INCLUDE
SASFILE
LIBNAME
SKIP
%LIST
TITLE
LOCK
X
For information about all the above statements except for the ODS statement, refer to the SAS Statements: Reference. For information about the ODS statement, refer to Output Delivery System and to SAS Output Delivery System: User's Guide.