Estou passando por um procedimento armazenado longo e encontrei isso, como parte de uma consulta longa:
SELECT ....
FROM ---
WHERE condition
AND CHECKSUM(r.roomprovider_id) <> CHECKSUM(ISNULL(br.roomprovider_id, r.roomprovider_id))
roomprovider_id
é um INT
valor
É a primeira vez que vejo e não tenho ideia do que está sendo alcançado com isso. Fiz algumas pesquisas, li a definição de CHECKSUM nas páginas de tecnologia e mais algumas fontes, mas não consigo entender o motivo de usar CHECKSUM
aqui.
Não estou procurando uma resposta que explique exatamente esse caso (se possível, melhor ainda), mas ficaria satisfeito com uma resposta explicando o objetivo dessa maneira de usar checksum
.
Ninguém pode realmente dizer exatamente por que essa pessoa codificou a
WHERE
cláusula dessa maneira. Posso dizer que não consigo pensar em uma razão pela qual a forma seja melhor do que:(E embora eu possa interpretar como o código está escrito no momento, não tenho certeza do comportamento esperado/intencionado
NULL
- uma linha deve ser incluída ou excluída quando o lado direito é ?)Meus palpites para a motivação deles incluem:
CHECKSUM()
era uma função novinha em folha que eles acabaram de aprender e só precisavam implementá-la em algum lugarCHECKSUM()
era menos propenso a imprecisões de colisões do que outros métodos, ou que - com apenas uma entrada - servia a qualquer propósito.