我試圖自動創建基於此數據集某些完整性約束:SAS:自動化完整性約束創建
ds_name | var_name | ic_clause | ic_msg
--------+----------+------------------------------------+-----------------------
tableA | var1 | primary key($var$) | $var$ is a primary key
tableB | var2 | check(where=($var$ in ('a', 'b'))) | invalid $var$ value
的想法是創建一個通用的程序,通過這個數據集循環並創建相應的集成電路。在這種特殊情況下,等效硬編碼的程序應該是:
proc datasets nolist;
modify tableA;
ic create primary key(var1)
message = "var1 is a primary key";
quit;
proc datasets nolist;
modify tableB;
ic create check(where=(var2 in ('a', 'b')))
message = "invalid var2 value";
quit;
這些都是我在節目想象中的步驟,但我需要幫助,將其轉化爲實際的代碼:
- 獲取的值一排,放在宏觀變量
- 實際變量名稱替換是$ var $子在列VAR_NAME
通過所有行
任何人都可以請幫我這個代碼運行的通用PROC數據集,例如:
proc datasets nolist;
modify &my_ds;
ic create &my_clause
message = &my_msg;
quit;
謝謝!
http://www2.sas.com/proceedings/sugi25/25/cc/25p077.pdf – user667489
@ user667489感謝爲文章!數據驅動編程確實是一個有趣的概念。 –