Temos um gerador SQL que emite instruções condicionais SQL genericamente para os campos especificados (que, para fins de discussão: rotularemos como myField).
Se myFieldé do tipo NVARCHAR, nós podemos fazer uma comparação do referido campo contra uma string assim: myField = 'foo'.
No entanto, isso não funciona para campos do tipo NTEXT. Assim, nós temos que fazer a comparação com um elenco: CAST(myField as NVARCHAR(MAX)) = 'foo'. De fato, isso funcionará se myFieldfor do tipo NVARCHARou NTEXT.
Qual é o impacto no desempenho de fazer o elenco mencionado em um campo que já é do tipo NVARCHAR? Minha esperança é que o SQL Server seja inteligente o suficiente para reconhecer dinamicamente que myFieldjá é do tipo NVARCHAR(transformando efetivamente o CASTnão-op).