Good notice, and I saw that I haven't put all what I wanted with this script as an explanation.
I have found many columns in many tables of many databases that are defined to allow NULLs but have non NULL values. That's actually an experience of working with constraints and when I got to understand what does mean to have a not nullable columns against nullabes in tables. The difference is big. This post (https://www.simple-talk.com/sql/t-sql-programming/how-to-get-nulls-horribly-wrong-in-sql-server/) gives you a wide window on this importance.
Script finds char types columns defined to allow NULL values but have non NULL values and generates the ALTER statements for the changes.
And of course you have to check whether all generated ALTER statements will pass to be executed after checking with the other programmable parties that use the database.
In my databases I found out columns without null values but defined to allow nulls. The data is being used for a couple of years, and no nulls are inserted. After a short talk with the application developers a decision felt down that we go with altering those columns.
P.S. I inherited the databases' development.