Я решил эту проблему, создав другую локальную переменную и, если searchString был числовым, преобразовать его, а если нет, то установить в ноль (идентификатор, который я знаю, не будет существовать).
declare @id int
if ISNUMERIC(@searchString) = 1
set @id = CONVERT(int, @searchString)
else
set @id = 0
Тогда где выражение выглядит так:
WHERE
a.ApplicationId = @id
OR app.Surname like @searchString + '%'
OR app.Forenames like '%' + @searchString + '%'