0) Allowing an exception to happen to implement some arbitrary form of error handling is just plain bad practice. Exceptions should generally be reserved for unexpected problems.
1) There's no point in repeatedly performing a process if it doesn't need to be done.
2) If there's already data in the database, altering a column's type will cause the data to be removed, so I took that code out.
Try this code:
IF (SELECT COLUMN_DEFAULT FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'suppDB' AND COLUMN_NAME = 'ldgrid') IS NULL
ALTER TABLE suppDB ADD CONSTRAINT DF_suppDB_ldgrid DEFAULT 0 FOR ldgrid;
IF (SELECT COLUMN_DEFAULT FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'suppDB1718' AND COLUMN_NAME = 'ldgrid') IS NULL
ALTER TABLE suppDB1718 ADD CONSTRAINT DF_suppDB1718_ldgrid DEFAULT 0 FOR ldgrid;
IF (SELECT COLUMN_DEFAULT FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'suppDB1819' AND COLUMN_NAME = 'ldgrid') IS NULL
ALTER TABLE suppDB1819 ADD CONSTRAINT DF_suppDB1819_ldgrid DEFAULT 0 FOR ldgrid;
IF (SELECT COLUMN_DEFAULT FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'suppDB' AND COLUMN_NAME = 'jvno') IS NULL
ALTER TABLE suppDB ADD CONSTRAINT DF_suppDB_jvno DEFAULT 0 FOR jvno;
IF (SELECT COLUMN_DEFAULT FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'suppDB1718' AND COLUMN_NAME = 'jvno') IS NULL
ALTER TABLE suppDB1718 ADD CONSTRAINT DF_suppDB1718_jvno DEFAULT 0 FOR jvno;
IF (SELECT COLUMN_DEFAULT FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'suppDB1819' AND COLUMN_NAME = 'jvno') IS NULL
ALTER TABLE suppDB1819 ADD CONSTRAINT DF_suppDB1819_jvno DEFAULT 0 FOR jvno;
UPDATE suppDB SET ldgrid = 0 WHERE ldgrid IS NULL;
UPDATE suppDB1718 SET ldgrid = 0 WHERE ldgrid IS NULL;
UPDATE suppDB1819 SET ldgrid = 0 WHERE ldgrid IS NULL;
UPDATE suppDB SET jvno = 0 WHERE jvno IS NULL;
UPDATE suppDB1718 SET jvno = 0 WHERE jvno IS NULL;
UPDATE suppDB1819 SET jvno = 0 WHERE jvno IS NULL;