テーブル定義が非常に小さいため、クエリできる列は 3 つだけです。また、問題の定義は、一度に複数の列を検索する必要がないことを示唆しています。つまり、検索値 (SearchText) と、検索対象の列を示す制御パラメーター (ColumnName) を受け取るストアド プロシージャを作成できます。
CREATE PROCEDURE StudentSearch
(
@ColumnName varchar(50)
, @SearchText varchar(100)
)
AS
BEGIN
SELECT ID
, FirstName
, LastName
FROM [Student Table]
WHERE (@ColumnName = 'FirstName' AND FirstName = @SearchText)
OR (@ColumnName = 'LastName' AND LastName = @SearchText)
END
部分文字列に基づいて名前を見つけることが問題で必要な場合は、FirstName LIKE '%' + @SearchText + '%'
代わりに使用しますが、例ではそれを言いませんでした。
一度に複数の列を検索する場合、これは実行できません。また、検索する列が文字列でない場合は複雑になります。しかし、これはあなたが指定した問題のニーズを満たしています。