Bởi vì một trong số chúng là lệnh sql giao dịch (lệnh try catch) và lệnh kia là lệnh DDL.
Có lẽ bạn nên truy vấn để xem liệu cột có tồn tại hay không trước khi thực hiện câu lệnh thay thế.
Để thực hiện việc này với MSSQL, hãy xem Làm cách nào để kiểm tra xem một cột có tồn tại trong bảng SQL Server hay không?
Cụ thể cho trường hợp của bạn,
IF COL_LENGTH('nyork', 'Qtr') IS NULL
BEGIN
alter table nyork
add [Qtr] varchar(20)
END