2012-08-31 6 views
2

을 표시하고 매개 변수 값을 지정하지 않으면 열의 모든 값에 대한 결과를 표시하려고합니다.저장 프로 시저에서 매개 변수 값을 생략하면 저장 프로 시저에 모든 값

아래와 같이 코드를 시도했지만 실행 중에 매개 변수 field1을 비워두면 작동하지 않고 field1 값을 입력하라는 메시지가 표시됩니다.

create procedure procedurename 
declare @startdate datetime, @enddate endtime, @field1 varchar(15) 

select * from table1 
where field1 = @xyz or @xyz is null 
and date between @startdate and @enddate 

execute procedurename @startdate = '01/07/2012', @enddate = '31/07/2012' 

는 [이 두 날짜 사이의 필드 1 열의 모든 값에 대한 결과 표시한다고 그래서 필드 1의 값을 생략]하지만, 파라미터 값을 요구한다.

답변

2

호출 할 때 필드를 생략하려면 프로 시저 선언에 기본값을 제공해야합니다.

create procedure procedurename (
    @startdate datetime, 
    @enddate endtime, 
    @field1 varchar(15) = NULL 
) 
AS 
... 
관련 문제