GENNUM= Data Set Option

Specifies a particular generation of a SAS data set.

Valid in: DATA step and PROC steps
Category: Data Set Control
Restriction: Use with input data sets only.

Syntax

GENNUM=integer

Syntax Description

integer

is a number that references a specific version from a generation group. Specifying a positive number is an absolute reference to a specific generation number that is appended to the name of a data set. Specifying a negative number is a relative reference to a historical version in relation to the base (current) version, from the youngest to the oldest. Typically, a value of 0 refers to the base version.

The DATASETS procedure provides a variety of statements for which specifying GENNUM= has additional functionality:
  • For the DATASETS and DELETE statements, GENNUM= supports the additional values ALL, HIST, and REVERT.
  • For the DELETE procedure, GENNUM= supports the additional values ALL, HIST, and REVERT.
  • For the CHANGE statement, GENNUM= supports the additional value ALL.
  • For the CHANGE statement, specifying GENNUM=0 refers to all versions rather than the base version only.

Details

After generations for a data set have been requested using the GENMAX= data set option, use GENNUM= to request a specific version. For example, specifying GENNUM=3 refers to the historical version #003; specifying GENNUM= –1 refers to the youngest historical version.
After 999 replacements, the youngest version would be #999. After 1,000 replacements, SAS rolls over the youngest version number to #000. Therefore, if you want the historical version #000, specify GENNUM=1000.
Both an absolute reference and a relative reference refer to a specific version. A relative reference does not skip deleted versions. Therefore, when working with a generation group that includes one or more deleted versions, using a relative reference results in an error if the version that is being referenced has been deleted. For example, if you have the base version AIR and three historical versions (AIR#001, AIR#002, and AIR#003), delete AIR#002. The following statements return an error because AIR#002 does not exist.
proc print data=air (gennum= -2);
run;

Examples

Example 1: Requesting a Version Using an Absolute Reference

This example prints the historical version #003 for data set A, using an absolute reference:
proc print data=a(gennum=3);
run;

Example 2: Requesting a Version Using a Relative Reference

The following PRINT procedure prints the data set three versions back from the base version:
proc print data=a(gennum=-3);
run;

See Also

Understanding Generation Data Sets in SAS Language Reference: Concepts
DATASETS Procedure in Base SAS Procedures Guide
Data Set Option: