0
我是全新的SAS 4GL ...SAS獲取表主鍵
是否可以從表中提取哪些列是主鍵或複合主鍵的一部分?我需要將它們的值合併到輸出數據集的一列中。
問題是,作爲一個輸入,我可以得到不同的表,我不知道他們的定義。
我是全新的SAS 4GL ...SAS獲取表主鍵
是否可以從表中提取哪些列是主鍵或複合主鍵的一部分?我需要將它們的值合併到輸出數據集的一列中。
問題是,作爲一個輸入,我可以得到不同的表,我不知道他們的定義。
如果定義了索引,那麼您可以找出在該索引中使用了哪些變量。參見例如:
data blah(index=(name));
set sashelp.class;
run;
proc contents data=blah out=blahconts;
run;
blahconts
具有指示name
是在一個簡單的索引,列,並且它具有1個索引總。
此外,您還可以有外鍵約束上,如this SAS documentation example如下:
proc sql;
create table work.mystates
(state char(15),
population num,
continent char(15),
/* contraint specifications */
constraint prim_key primary key(state),
constraint population check(population gt 0),
constraint continent check(continent in ('North America', 'Oceania')));
create table work.uspostal
(name char(15),
code char(2) not null, /* constraint specified as */
/* a column attribute */
constraint for_key foreign key(name) /* links NAME to the */
references work.mystates /* primary key in MYSTATES */
on delete restrict /* forbids deletions to STATE */
/* unless there is no */
/* matching NAME value */
on update set null); /* allows updates to STATE, */
/* changes matching NAME */
/* values to missing */
quit;
proc contents data=uspostal out=postalconts;
run;
proc sql;
describe table constraints uspostal;
quit;
寫入約束信息到輸出窗口。從輸出數據集中,您可以看到變量處於簡單索引中。你可以用任一在ODS輸出(PROC CONTENTS
或DESCRIBE TABLE CONSTRAINTS
)來獲取信息到數據集:
ods output IntegrityConstraints=postalICs;
proc contents data=uspostal out=postalconts;
run;
ods output close;
或
ods output IntegrityConstraints=postalICs;
proc sql;
describe table constraints uspostal;
quit;
ods output close;