У нас є генератор SQL, який загалом випромінює умовні оператори SQL для вказаних полів (що заради обговорення: будемо позначати як myField
).
Якщо myField
має тип NVARCHAR
, ми можемо зробити порівняння зазначеного поля з рядком , як так: myField = 'foo'
.
Однак це не працює для полів типу NTEXT
. Таким чином, ми повинні зробити порівняння з кидком: CAST(myField as NVARCHAR(MAX)) = 'foo'
. Фактично це буде спрацьовувати, якщо myField
це тип NVARCHAR
або NTEXT
.
Що таке падіння продуктивності робити вищезгадане кидання на поле, яке вже типу NVARCHAR
? Я сподіваюсь, що SQL Server досить розумний, щоб динамічно розпізнавати те, що myField
вже є типом NVARCHAR
(ефективно перетворюючи CAST
на не-оп).