Acredito que você pode omitir a atualização das colunas "não desejadas" ajustando as outras respostas da seguinte forma:
update table set
columnx = (case when condition1 then 25 end),
columny = (case when condition2 then 25 end)
Pelo que entendi, isso só será atualizado quando a condição for atendida.
Depois de ler todos os comentários, este é o mais eficiente:
Update table set ColumnX = 25 where Condition1
Update table set ColumnY = 25 where Condition1
Tabela de amostra:
CREATE TABLE [dbo].[tblTest](
[ColX] [int] NULL,
[ColY] [int] NULL,
[ColConditional] [bit] NULL,
[id] [int] IDENTITY(1,1) NOT NULL
) ON [PRIMARY]
Dados de amostra:
Insert into tblTest (ColX, ColY, ColConditional) values (null, null, 0)
Insert into tblTest (ColX, ColY, ColConditional) values (null, null, 0)
Insert into tblTest (ColX, ColY, ColConditional) values (null, null, 1)
Insert into tblTest (ColX, ColY, ColConditional) values (null, null, 1)
Insert into tblTest (ColX, ColY, ColConditional) values (1, null, null)
Insert into tblTest (ColX, ColY, ColConditional) values (2, null, null)
Insert into tblTest (ColX, ColY, ColConditional) values (null, 1, null)
Insert into tblTest (ColX, ColY, ColConditional) values (null, 2, null)
Agora suponho que você possa escrever uma condicional que lida com nulos. Para meu exemplo, estou assumindo que você escreveu uma condicional que avalia como True, False ou Null. Se precisar de ajuda com isso, me avise e eu farei o meu melhor.
Agora, a execução dessas duas linhas de código altera de fato X para 25 se e somente se ColConditional for True (1) e Y para 25 se e somente se ColConditional for False (0)
Update tblTest set ColX = 25 where ColConditional = 1
Update tblTest set ColY = 25 where ColConditional = 0
PS O caso nulo nunca foi mencionado na pergunta original ou em qualquer atualização da pergunta, mas como você pode ver, esta resposta muito simples trata disso de qualquer maneira.