Protože jeden z nich je příkaz transact sql (try catch) a druhý je příkaz DDL.
Před provedením příkazu alter byste pravděpodobně udělali lepší dotaz, abyste zjistili, zda sloupec existuje.
Chcete-li to provést pomocí MSSQL, viz Jak zkontrolovat, zda existuje sloupec v tabulce serveru SQL?
Konkrétně pro váš případ
IF COL_LENGTH('nyork', 'Qtr') IS NULL
BEGIN
alter table nyork
add [Qtr] varchar(20)
END