У меня есть следующая таблица «Менеджеры» (упрощенно):
ID, int
Name, nvarchar(100)
В хранимой процедуре, которая имеет один аргумент («Поиск», введите nvarchar), я хочу выбрать каждую строку, где
- ID-столбец точно @Search ИЛИ
- Колонка имени содержит @ Search.
На данный момент мой выбор в хранимой процедуре выглядит примерно так:
SELECT ID, Name FROM Managers WHERE
(ISNUMERIC(@Search) = 1 AND [ID] = CAST(@Search AS INT)) Or
Contains([Name], @Search)
Если я вызову хранимую процедуру с @Search = 1321 (пример), выбор будет работать.
Но если у меня есть параметр @Search - не числовой (например, HES), я получаю следующую ошибку:
Ошибка преобразования при преобразовании значения nvarchar 'HES' в тип данных int.
Как я могу это исправить?
Заранее спасибо
Raphi