次のテーブル「マネージャー」があります(簡略化):
ID, int
Name, nvarchar(100)
1 つの引数 (「検索」、nvarchar 型) を持つストアド プロシージャで、すべての行を選択したい
- ID-Column は正確に @Search OR
- Name-Column には @Search が含まれています。
現時点では、ストアド プロシージャでの選択は次のようになります。
SELECT ID, Name FROM Managers WHERE
(ISNUMERIC(@Search) = 1 AND [ID] = CAST(@Search AS INT)) Or
Contains([Name], @Search)
@Search = 1321 (例) でストアド プロシージャを呼び出すと、select が機能します。
しかし、@Search - 数値ではないパラメーター (たとえば "HES") がある場合、次のエラーが発生します: nvarchar 値 'HES' をデータ型 int に変換するときに変換に失敗しました。
どうすればこれを修正できますか?
前もって感謝します
ラフィ