Добавление запроса на основе условия в хранимой процедуре SQL - PullRequest
0 голосов
/ 27 января 2011

В моем приложении .net 2.0 я хочу преобразовать все встроенные запросы в хранимые процедуры sql.

У меня есть запросы типа

StringBuilder query = new StringBuilder();    
**query.AppendLine("Select * from xxx Where 1 =1");**

if(Id != 0)    
query.AppendLine("And Id = @Id");

if(Nemae != null)    
query.AppendLine("And Name = @Name");

Как мне написать это в хранимой процедуре sql?

Нужно ли повторять?

Ответы [ 2 ]

1 голос
/ 27 января 2011

Вы можете передавать параметры в хранимые процедуры и использовать их следующим образом:

CREATE PROC spTest
(
    @name varchar(30)=NULL
    , @id int=NULL
)
AS
BEGIN
    SELECT * FROM TABLE_NAME
    WHERE (@name IS NULL OR name = @name)
    AND    (@id IS NULL OR id = @id)
END
0 голосов
/ 27 января 2011

Вероятно так:

SELECT * FROM TABLEA
WHERE (@PARAM1 = 0 OR ID=@PARAM1) AND (@Name = NULL OR COLUMN2=Name)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...