Bạn không thể sử dụng các biến, như @tableName, trong DDL. Bên cạnh đó, việc tách tên thành một phần và bỏ qua lược đồ chỉ có thể dẫn đến lỗi. Bạn chỉ nên sử dụng thay thế ''? '' Trong tham số lô SQL và dựa vào MSforeachtable
thay thế:
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';