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ê.