क्योंकि उनमें से एक ट्रांजैक्ट एसक्यूएल कमांड (ट्राई कैच) है और दूसरा डीडीएल स्टेटमेंट है।
आप शायद यह देखने के लिए पूछताछ करना बेहतर करेंगे कि परिवर्तन कथन करने से पहले कॉलम मौजूद है या नहीं।
MSSQL के साथ ऐसा करने के लिए, देखें कैसे जांचें कि SQL सर्वर तालिका में कोई कॉलम मौजूद है या नहीं?
विशेष रूप से आपके मामले के लिए,
IF COL_LENGTH('nyork', 'Qtr') IS NULL
BEGIN
alter table nyork
add [Qtr] varchar(20)
END