Цитата:
Сообщение от
gl00mie
Можно обойтись без профайлера SQL, ограничившись штатной трассировкой запросов, если в запросе использовать hint forceliterals. Хотя в запросе с литералами и без них может получиться разное значение маски

Да, хинт forceliterals спасает положение. Но только если использовать переменные
X++:
while select forceLiterals TableTestLike
where
TableTestLike.Field1 like mask
{
info(TableTestLike.Field1);
}
Если же вместо переменной использовать константу. Т.е. писать запрос так
X++:
while select forceLiterals TableTestLike
where
TableTestLike.Field1 like '*ABC0123456'
{
info(TableTestLike.Field1);
}
То вне зависимости от использования хинта forceliterals или forceplaceholders на сервер уходит запрос вида
Код:
SELECT *
FROM TableTestLike
WHERE (Field1 like '\%ABC0123456' ESCAPE '\' )
Подобный запрос вообще ничего не возвращает. Но здесь проблема в обратном слеше и действительно уже в собственно MS SQL. Очевидно, происходит не корректное исключение этого самого слеша из условия отбора