2011-01-27 5 views
0

내 .net 2.0 응용 프로그램에서 모든 인라인 쿼리를 SQL 저장 프로 시저로 변환하려고합니다.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 저장 프로 시저에서이 쓸 수 있나요?

반복해야합니까?

답변

0

:

SELECT * FROM TABLEA 
WHERE (@PARAM1 = 0 OR [email protected]) AND (@Name = NULL OR COLUMN2=Name) 
+1

코드, XML 또는 데이터 샘플을 게시하는 경우 ** 텍스트 편집기에서 해당 행을 강조 표시하고 "코드 샘플"버튼 ({ }) 편집기 툴바에서 멋지게 형식을 지정하고 구문을 강조 표시합니다. 티! –

+0

'@Name = NULL ... '- ANSI_NULLS가 OFF로 설정되어 있고 기본값이 ON 일 때만 작동합니다. 대신 ANSI_NULLS 설정에 상관없이 의도 한대로 작동합니다 :'@Name IS NULL OR ... '. (참조 : http://msdn.microsoft.com/en-us/library/ms188048.aspx) –

1

당신은 저장 프로 시저에 매개 변수를 전달하고 다음과 같이 사용할 수 있습니다 : 아마 이런

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

나는 이름, 즉 널 때 이름 인 경우 어떤 검사를 수행 할이 donot 없음 null이 없으면 조건이 없습니다 – gowri

+0

괜찮습니다. 지금 받으십시오 – gowri