Anda tidak dapat menggunakan variabel, seperti @tableName, di DDL. Selain itu, membelah nama menjadi beberapa bagian dan mengabaikan skema hanya dapat menghasilkan bug. Anda sebaiknya menggunakan penggantian ''?'' dalam parameter batch SQL dan mengandalkan MSforeachtable
pengganti:
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';