Abbiamo un generatore SQL che emette istruzioni condizionali SQL genericamente per campi specifici (che per motivi di discussione: etichettiamo come myField
).
Se myField
è di tipo NVARCHAR
, possiamo fare un confronto tra detto campo contro una stringa in questo modo: myField = 'foo'
.
Tuttavia, questo non funziona per i campi di tipo NTEXT
. Così, abbiamo a che fare il confronto con un cast: CAST(myField as NVARCHAR(MAX)) = 'foo'
. Questo funzionerà infatti se myField
è di tipo NVARCHAR
o NTEXT
.
Qual è l'hit di performance di fare il cast di cui sopra su un campo che è già di tipo NVARCHAR
? La mia speranza è che SQL Server sia abbastanza intelligente da riconoscere dinamicamente che myField
è già di tipo NVARCHAR
(trasformando CAST
in modo efficace il no-op).