Hello @szymon_dybczak thank you for your reply.

The constraint didn't work as it needs to be run in its own alter table statement and even setting that before the 'Set Not Null' still resulted in the datatype changing to string. 

Would you know who I'd contact to see if this is a bug?