Good moring. I would like to understand what the "NOTNULL" variable in the dictionary.column means. I see that it is always evaluated as NO, without distinction both in the null case and in the case it is evaluated
data test1;
x=2;
run;
data test2;
x=.;
run;
proc sql;
create table columns as
select memname,libname,type,notnull, name from dictionary.columns
where libname = "WORK" and memname like "TEST%";
quit;
Hello @mariopellegrini,
I think this variable is about integrity constraints: If an integrity constraint "NOT NULL" or "PRIMARY KEY" exists for the dataset variable in question, then NOTNULL='yes'.
Create such an integrity constraint:
proc datasets lib=work nolist;
modify test1;
ic create not null(x);
quit;
Now dictionary.columns shows:
memname libname type notnull name TEST1 WORK num yes x TEST2 WORK num no x
Hello @mariopellegrini,
I think this variable is about integrity constraints: If an integrity constraint "NOT NULL" or "PRIMARY KEY" exists for the dataset variable in question, then NOTNULL='yes'.
Create such an integrity constraint:
proc datasets lib=work nolist;
modify test1;
ic create not null(x);
quit;
Now dictionary.columns shows:
memname libname type notnull name TEST1 WORK num yes x TEST2 WORK num no x
Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9. Sign up by March 14 for just $795.
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.