Sas 使用具有灵活名称和LIB的PROC copy创建表的副本

Sas 使用具有灵活名称和LIB的PROC copy创建表的副本,sas,copy,Sas,Copy,我读到PROC COPY比DATA步骤快 我理解以下工作原理: proc copy in=lib1 out=lib2; select have; run; 但是,我希望在输出的名称上有一些灵活性,主要是因为我希望复制源所在库中的表 基本上,我想要(如果可能的话)更高效的版本: DATA lib1.have; set lib2.want; run; 如果PROC COPY比数据步骤快,可能是因为它知道在写回数据之前不需要操作数据 为什么不使用PROC APPEND实现您想要的功能?使用

我读到
PROC COPY
DATA
步骤快

我理解以下工作原理:

proc copy in=lib1 out=lib2;
    select have;
run;
但是,我希望在输出的名称上有一些灵活性,主要是因为我希望复制源所在库中的表

基本上,我想要(如果可能的话)更高效的版本:

DATA lib1.have;
set lib2.want;
run;

如果PROC COPY比数据步骤快,可能是因为它知道在写回数据之前不需要操作数据

为什么不使用PROC APPEND实现您想要的功能?使用BASE=选项设置目标表,使用DATA=选项设置源表

proc append data=lib1.have base=lib2.want ;
run;
如果要确保尚未存在表
lib2.want
,请在其前面添加
proc delete
步骤

proc delete data=lib2.want; 
run;

正是我要发布的内容。日志将显示基本数据不存在,因此正在复制该表。我总是在
proc datasets
中使用前面的
delete
语句来执行此操作,以防append多次运行