2016-08-23 122 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