35%macro mp_createconstraints(inds=mp_getconstraints
36 ,outds=work.mp_createconstraints
40proc sort data=&inds out=&outds;
41 by libref table_name constraint_name;
46 by libref table_name constraint_name;
47 length create_statement $500;
48 if _n_=1 and
"&execute"=
"YES" then call execute(
'proc sql;');
49 if first.constraint_name then
do;
50 if constraint_type=
'PRIMARY' then type=
'PRIMARY KEY';
51 else type=constraint_type;
52 create_statement=catx(
" ",
"alter table",libref,
".",table_name
53 ,
"add constraint",constraint_name,type,
"(");
54 if last.constraint_name then
55 create_statement=cats(create_statement,column_name,
");");
56 else create_statement=cats(create_statement,column_name,
",");
57 if "&execute"=
"YES" then call execute(create_statement);
59 else if last.constraint_name then
do;
60 create_statement=cats(column_name,
");");
61 if "&execute"=
"YES" then call execute(create_statement);
64 create_statement=cats(column_name,
",");
65 if "&execute"=
"YES" then call execute(create_statement);
70%mend mp_createconstraints;