1 つはトランザクション SQL コマンド (try catch) であり、もう 1 つは DDL ステートメントであるためです。
変更ステートメントを実行する前に、クエリを実行して列が存在するかどうかを確認した方がよいでしょう。
MSSQL でこれを行うには、列が SQL Server テーブルに存在するかどうかを確認する方法
具体的には、
IF COL_LENGTH('nyork', 'Qtr') IS NULL
BEGIN
alter table nyork
add [Qtr] varchar(20)
END