आप डीडीएल में @tableName जैसे वेरिएबल का उपयोग नहीं कर सकते हैं। इसके अलावा, नाम को भाग में विभाजित करने और स्कीमा को अनदेखा करने से केवल बग हो सकते हैं। आपको बस SQL बैच पैरामीटर में ''?'' प्रतिस्थापन का उपयोग करना चाहिए और MSforeachtable
पर भरोसा करना चाहिए प्रतिस्थापन:
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';