_
- это шаблон, который соответствует любому символу. Вы можете выбрать другого персонажа, чтобы избежать его. Скажи:
WHERE Name like replace(@Name, '_', '$_') + '%' ESCAPE '$'
Это может быть громоздким, поэтому вы можете просто использовать другую логику:
WHERE LEFT(Name, LEN(@Name)) = @Name
К сожалению, эта формулировка предотвращает использование индекса.