Du kan ikke bruge variabler, såsom @tableName, i DDL. Desuden kan det kun resultere i fejl at dele navnet op og ignorere skemaet. Du skal bare bruge ''?''-erstatningen i SQL batch-parameteren og stole på MSforeachtable
erstatning:
EXEC sp_MSforeachtable '
if not exists (select * from sys.columns
where object_id = object_id(''?'')
and name = ''CreatedOn'')
begin
ALTER TABLE ? ADD CreatedOn datetime NOT NULL DEFAULT getdate();
end';