O T-Sql parece estar avaliando a instrução “If” mesmo quando a condição não é verdadeira

Eu tenho um script T-Sql onde parte deste script verifica para ver se uma determinada coluna existe na tabela. Se assim for, eu quero que ele execute uma rotina ... se não, eu quero ignorar essa rotina. Meu código é assim:

IF COL_LENGTH('Database_Name.dbo.Table_Name', 'Column_Name1') IS NOT NULL
    BEGIN
        UPDATE Table_Name
            SET Column_Name2 = (SELECT Column_Name3 FROM Table_Name2
                WHERE Column_Name4 = 'Some Value')
            WHERE Column_Name5 IS NULL;

        UPDATE Table_Name
            SET Column_Name6 = Column_Name1
            WHERE Column_Name6 IS NULL;
    END

Meu problema é que, mesmo quando COL_LENGTH de Column_Name1 é nulo (o que significa que ele não existe) ainda estou recebendo um erro dizendo "Nome de coluna inválido 'Column_Name1'" da segunda instrução UPDATE na instrução IF. Por alguma razão, esta condição IF ainda está sendo avaliada mesmo quando a condição é FALSE e não sei por quê.

questionAnswers(2)

yourAnswerToTheQuestion