Mamy generator SQL, który generalnie generuje instrukcje warunkowe SQL dla określonych pól (które dla celów dyskusji: oznaczymy jako myField
).
Jeśli myField
jest typu NVARCHAR
, możemy zrobić porównanie wspomnianej dziedzinie przeciwko ciąg tak: myField = 'foo'
.
Nie działa to jednak w przypadku pól typu NTEXT
. Zatem musimy zrobić porównanie z obsadą: CAST(myField as NVARCHAR(MAX)) = 'foo'
. To faktycznie zadziała, jeśli myField
jest typu NVARCHAR
lub NTEXT
.
Jaka jest skuteczność w wykonaniu wspomnianej obsady na polu, które jest już typu NVARCHAR
? Mam nadzieję, że SQL Server jest wystarczająco inteligentny, aby dynamicznie rozpoznawać, że myField
jest już tego typu NVARCHAR
(skutecznie zmieniając go CAST
w brak możliwości).