¿Podemos poner un signo igual (=) después de las funciones agregadas en Transact-SQL?

11

Me he encontrado con un script como este:

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

No puedo entender el significado del signo igual (=) después de la segunda suma de palabras clave. Cuando ejecuto la consulta, no muestra ningún error tanto con el signo igual como sin él.

Quiero saber el propósito de poner un signo igual después de la palabra clave sum. ¿Es eso un error o no?

Gracias

igelr
fuente

Respuestas:

19

Esto está documentado en ACTUALIZACIÓN (Transact-SQL) :

SET @variable = column = expression establece la variable en el mismo valor que la columna. Esto difiere de SET @variable = column, column = expression, que establece la variable en el valor previo a la actualización de la columna.

En su ejemplo de código, sumes el nombre (poco inteligente) de una columna, no un agregado.

demostración de violín db <>

Paul White 9
fuente