如何在SAS中附加所有具有表名的表

时间:2015-08-25 15:32:00

标签: sql macros sas append

我试图将工作库中的所有表(相同结构)附加到一个数据集中。但是我需要一个新的列名来指示表名。 我尝试了两种方法:

  1. 宏数组并执行:

    PROC APPEND BASE=_dupout DATA=dup_&dataset. FORCE;
    RUN;
    
  2. Proc SQL:

    PROC SQL;
       SELECT MEMNAME, catx('.', libname, MEMNAME) INTO : MEMNAMES SEPARATED BY ' '     
       from dictionary.tables
       where libname='WORK';
    quit;
    
    DATA DUP_OUT;
       SET &MEMNAMES.;
    RUN; 
    
  3. 但我找不到的方法都不会添加新列(表名)。也许这是一个非常简单的问题?我被卡住了......请帮忙......

1 个答案:

答案 0 :(得分:0)

非常接近,请在SET语句中使用INDSNAME选项。

DATA DUP_OUT;
SET &MEMNAMES. INDSNAME=SOURCE;
DSET=SOURCE;
RUN;