2016-08-23 86 views
1

我想截断表而不是在运行代码时删除表。如何更改代码,从drop existing table到truncate table?在SAS LASR表中,有一个类似的代码下面一行:截断SAS LASR表

/* Drop existing table */ 
%vdb_dt(LIBNAME.TARGETLASRTABLE); 

之所以这样做,是因为当表,并在同一时间的报表设计器重新加载,这将导致在SAS VA的报表设计器提示错误消息“数据源(TARGETLASRTABLE)不再可访问或已被替换,您想选择新的数据源吗?”。

由于该表格已放入代码中,因此会出现提示信息。为了避免提示消息,我想将drop语句更改为truncate语句。有没有什么方法可以编写truncate语句代码来替换掉现有的表?请帮忙,谢谢。

回答

0

有一个旨在管理SAS LASR Server中的数据的过程。它被称为内存统计中的IMSTAT。它还可以执行统计和预测建模操作。

但回到你的问题。您可以使用IMSTAT过程来截断表。

/*LASR table truncation*/ 
proc imstat; 
    table vadst.productanalysis; 
    deleterows; 
    deleterows/purge; 
    run; 
quit; 

/*appending data to existing LASR table*/ 
data vadst.productanalysis(append=yes); 
    set vasrc.productanalysis; 
run; 

table vadst.productanalysis; - 选择LASR表进行操作。

deleterows; - 如果没有WHERE子句处于活动状态,则将所有行标记为删除。你可以取消删除它们。

deleterows/purge; - 指定从内存中删除标记为删除的行。行被使用的内存被释放。

如果你在LASR服务器和内存表上工作了很多,我建议熟悉这个过程。这里是文档:SAS® LASR™ Analytic Server 2.7