一貫性制約にてデータの妥当性を確保する

[OS] ALL
[リリース] SAS System 8以降
[キーワード] Base, unique key, integrity constraints, IC

[質問]

ある変数の値は、ユニークである必要があります。現在は、データを追加後、SORTプロシジャにNODUPKEYオプションを指定して、データの重複がないかを確認しています。他に良い方法はありませんか。

[回答]

一貫性制約を作成することで、SORTプロシジャを利用する必要はなくなります。
以下のサンプルプログラムをご確認ください。


  DATA sample;                         /* サンプルデータを作成 */
    INPUT id age;
  CARDS;
  1 10
  2 11
  3 12
  4 13
  5 11
  ;
  RUN;

  PROC DATASETS LIB=work NOLIST;
    MODIFY sample;
    IC CREATE iduni=unique(id)             /* 一貫性制約を作成 */
    MESSAGE='IDがユニークではありません';
  QUIT;

  DATA add;                    /* 制約に適合しないデータを作成 */
    SET sample(OBS=1);
  RUN;

  PROC APPEND BASE=sample DATA=add;
  RUN;