除了modify
聲明之外,是否還有其他方法可以修改SAS數據集的內容(即更改值或添加或刪除行或列)不涉及涉及在工作中創建臨時文件,然後替換整個原始文件?我可以在不創建臨時文件的情況下修改現有的SAS數據集嗎?
相關的問題:如果我有一個單一的proc sql
有一個create table
聲明和幾個insert
聲明,所有針對同一個表,將SAS最終執行期間覆蓋輸出表幾次,還是足夠聰明來完成所有的一次寫入?假設我沒有連接到任何其他DBMS。
由於2人已經張貼了這個,下面是不是一個有效的答案:
data lib.dsn;
set lib.dsn;
/*Insert logic here*/
run;
如果你這樣做,SAS創建一個臨時文件,一旦數據步驟完成替換原始lib.dsn 。如果您中斷這種數據步驟,日誌中將會出現錯誤,但原始數據集將保持不變。
恕我直言,只有一個辦法,找出:(?)填補或禁用saswork看看怎麼了。 SAS不符合ACID標準,它可能依靠主機操作系統的文件系統操作來模擬其中的一部分)當然,還有拼接鎖定。 – wildplasser 2014-10-08 23:37:35
我想我可以刪除自己對工作目錄的寫入權限,看看SAS是否能夠修改其他地方的數據集 - 感謝您的建議。 – user667489 2014-10-08 23:46:45