Podemos colocar um sinal de igual (=) após funções agregadas no Transact-SQL?

11

Eu encontrei um script como este:

set @sum = sum = (case when somecol1 is null then DATEDIFF(d,[somecol2],somecol3) else 0 end)

Não consigo entender o significado do sinal de igual (=) após a segunda soma da palavra-chave. Quando executo a consulta, ela não mostra nenhum erro com o sinal de igual e sem.

Quero saber o objetivo de colocar um sinal de igual após a palavra-chave sum. Isso é um erro ou não?

obrigado

igelr
fonte

Respostas:

19

Isso está documentado em UPDATE (Transact-SQL) :

SET @variable = column = expression define a variável para o mesmo valor que a coluna. Isso difere de SET @variable = column, column = expression, que define a variável para o valor de pré-atualização da coluna.

No seu exemplo de código, sumé o nome (imprudente) de uma coluna, não um agregado.

db <> demo de violino

Paul White 9
fonte