Updating Descriptor Files

This section describes how to update existing descriptor files. You update access descriptor and view descriptor files with the UPDATE statement. You can edit your information and field information in the descriptor files.
When you update an access descriptor, the view descriptors that are based on this access descriptor are not updated automatically. You must re-create or update any view descriptors that you want to reflect the changes made to the access descriptor. That is, for some updates (such as dropping a field), the view descriptors are still valid, but they do not reflect the changes made in the access descriptor. In other situations (for example, if you edited the access descriptor to use a different user ID or to add a password), the view descriptors would no longer be valid. A valid descriptor file can also be made useless by an update. For example, if an update to an access descriptor drops two of the four fields defined in a view descriptor, you might want to update or delete the view descriptor.
The following example updates access descriptor MyLib.Custs to drop additional fields. The Vlib.UsaCusts and Vlib.CustAdd view descriptors remain valid. However, you might want to update them to select new fields to replace those dropped as a result of the update.
proc access dbms=Datacom;
 update mylib.custs.access; 
  drop 3 7; 
  list all; 
run;
The statements are described below.
proc access dbms=Datacom;
invokes the ACCESS procedure for the SAS/ACCESS interface to CA-Datacom/DB.
update mylib.custs.access;
identifies the access descriptor, MyLib.Custs, that you want to update. The MyLib libref must be associated with a SAS library before you can specify this statement.
drop 3 7;
marks the CA-Datacom/DB fields associated with position 3 (STATEZIP) and position 7 (TELEPHONE) as non-display. STATEZIP is a compound (*GROUP*) field consisting of STATE and ZIPCODE. Dropping a group effectively drops the members of the group, so the STATE and ZIPCODE fields (which are selected in Vlib.UsaCust and Vlib.CustAdd) are marked as non-display as well.
list all;
lists updated SAS information for the fields in the access descriptor. Fields that were dropped have *NON-DISPLAY* next to the SAS column description. The list is written to the SAS log.
run;
writes the updated access descriptor when the RUN statement is processed.
Altering a CA-Datacom table that has descriptor files defined can also cause these files to be out of date or invalid. If you add a field to a table, an access descriptor is still valid. However, if you delete a field or change its characteristics and that field is used in a view descriptor, the view fails when executed. For more information, see How Changing the CA-DATADICTIONARY Database Affects Descriptor Files.