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