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 myField
for do tipo NVARCHAR
ou 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 myField
já é do tipo NVARCHAR
(transformando efetivamente o CAST
não-op).