停止SAS执行

停止SAS执行,sas,Sas,快速提问 是否有一种单行程序(或相当简短的内容)的方法来取消在windowing环境中执行更多SAS语句 这些是我所知道的,但它们让人厌烦,尤其是在有很多评论的大型节目中。 我尝试了ABORT和STOP语句,但它们关闭了窗口环境,但我只想在某个点停止执行,继续我的快乐之路 谢谢这是SAS-L上经常出现的问题。答案是,这在很大程度上取决于你在做什么 如果您希望由于错误而停止执行,则最好使用run cancel方法。在程序的顶部,您可以执行以下操作: %let cancel =; *or any m

快速提问

是否有一种单行程序(或相当简短的内容)的方法来取消在windowing环境中执行更多SAS语句

这些是我所知道的,但它们让人厌烦,尤其是在有很多评论的大型节目中。 我尝试了
ABORT
STOP
语句,但它们关闭了窗口环境,但我只想在某个点停止执行,继续我的快乐之路


谢谢

这是SAS-L上经常出现的问题。答案是,这在很大程度上取决于你在做什么

如果您希望由于错误而停止执行,则最好使用
run cancel
方法。在程序的顶部,您可以执行以下操作:

%let cancel =; *or any macro variable name, but cancel is most logical;
然后,在每一个跑步步骤中:

data whatever;
... do stuff ...;
run &cancel;
每次出现一些潜在错误时,您都会检查错误条件,然后如果出现错误,
%let cancel=cancel你很好

如果正在使用宏,只要不使用任何选项或仅使用
取消
,就可以使用
%abort
顺利退出宏。根据您正在执行的操作,您可以将代码设置为在宏(或多个宏)中运行,并使用此选项(尽管其缺点是会丢失一些日志清晰度)


最后,如果您对能够运行代码的子集感兴趣,我建议您在多个SAS程序中为您可能希望单独运行的位编写代码,然后使用主程序中的
%include
,将它们与您可能希望设置的共享宏变量一起分组。这类似于在EG中构建许多较小的程序,然后使用流程图对它们进行分组

%abort cancel;

我也一直在寻找这个-这个文档不好。试错(叹息…)。令人惊讶的是,这项未记录的功能对我起了作用:

data _null_ ;
  ABORT CANCEL ;
run ;

很简单!此后没有执行任何操作,但SAS应用程序仍保持打开状态。

FYI
proc sql
还有一个类似的选项,名为
noexec
。完整语法为
proc-sql-noexec。。。。做事;退出
。进程的内容将不会被执行。你也可以用乔在上面描述的同样的技巧来做这件事。这对我很有用。数据为空;如果&sitrouv>0,则调用execute(“procsqlnoprint;…sqlQuery…;”;否则中止取消;跑我不确定我是否会将ABORT语句称为undocumented。问题是它将完全停止您的SAS会话。因此,如果最初的问题是指如何停止使用SAS显示管理器提交的代码块,那么运行ABORT将关闭SAS,包括您用来编辑程序的所有窗口!