У меня есть таблица с несколькими полями в ней. Я пытаюсь создать фильтр поиска в asp.net, чтобы пользователь мог искать по одной или комбинации полей. Поэтому в основном я хочу, чтобы создать единый хранимую процедуру, которая принимает в 4 Params и добавит параметров в ИНЕКЕ, если его не нулевые ...SQL Filter Query
TableExample имеет 4 колонки, Col1 Col2 Col3 COL4
I я надеюсь, что есть способ сделать это с помощью одной хранимой процедуры, а не создавать ее для каждой возможной комбинации.
Я пытался что-то вроде этого, что неверно, но его то, что ive получил до сих пор.
СПАСИБО!
CREATE PROCEDURE [dbo].[Search]
@Col1 int,
@Col2 int,
@Col3 int,
@Col4 int
AS
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
SELECT *
FROM
[dbo].[TestTable]
WHERE
1=1
CASE
WHEN @Col1 IN NOT NULL
THEN AND [Col1] = @Col1
WHEN @Col2 IN NOT NULL
THEN AND [Col2] = @Col2
WHEN @Col3 IN NOT NULL
THEN AND [Col3] = @Col3
WHEN @Col4 IN NOT NULL
THEN AND [Col4] = @Col4
END
Так Что является консенсус, будет лучше просто построить строку запроса в стороне кода в C# затем сделать запрос, вместо того, чтобы пытаться иметь ХП сборки динамически ? Кажется, есть некоторые подводные камни с сохраненным методом proc ... – Gabe