2013-10-15 2 views
0

저장 프로 시저를 만들 때 어떤 변수의 변수에 여러 값이 있어야합니다. 내가 테이블 변수를 사용하여 시도했지만 그게 내가 찾고 있는게 아니야. 그 이유는 내가 선택 쿼리에서 여러 값을 확인하고 이러한 값에 if 문을 사용해야하기 때문입니다.변수에 다중 값 사용

내가입니다에 대한 변수 필요한 코드 : A와 같은 문자열

If @SplitVal = 1 
Begin 
    Insert into SpecDetailsExt (SrecId, SplitVal, Acknowledged,Required, [Drawings Produced]) 
    Select DISTINCT SpecDetails.SrecId, '1', @MoveToOrder, @RequiredDate, @Drawings 
    FROM SpecDetails INNER JOIN Products ON SpecDetails.ProductRef = Products.CDF_Code_Tx 
    WHERE (SpecDetails.QuoteNo = @Qno) 
End 
ELSE 
Begin 
    Insert into SpecDetailsExt (SrecId, SplitVal, Acknowledged, Required, [Drawings Produced]) 
    Select DISTINCT SpecDetails.SrecId, '1', @MoveToOrder, @RequiredDate, @Drawings 
    FROM SpecDetails INNER JOIN Products ON SpecDetails.ProductRef = Products.CDF_Code_Tx 
    WHERE (SpecDetails.QuoteNo = @Qno) 

    Insert into SpecDetailsExt (SrecId, SplitVal, Acknowledged, Required, [Drawings Produced]) 
    Select DISTINCT SpecDetails.SrecId, '2', @MoveToOrder, @RequiredDate, @Drawings 
FROM SpecDetails 
      INNER JOIN Products ON SpecDetails.ProductRef = Products.CDF_Code_Tx 
    WHERE (SpecDetails.QuoteNo = @Qno) 
End 
+2

질문이 명확하지 않습니다. "다중 값을 가짐"이란 무엇을 의미합니까? 변수는 한 번에 하나의 값만 갖습니다. 여러 변수가 필요하다는 의미입니까? 임시 테이블 또는 단순히 여러 변수가 작동하지 않는 이유는 무엇입니까? 또한 코드에서 어떤 변수가 "다중 값을 가질"것으로 예상되는지 명확하지 않습니다. 만약 각 insert에 MoveToOrder, RequiredDate, Drawings, Qno를 저장해야한다면 임시 테이블을 사용하고 SrecId에 합류하여 실제 테이블에 병합하면된다. 키). – mayabelle

+0

여러 값을 가지려면'@ SplitVal'이 필요합니다. 또는 적어도 값을 할당 한 다음 루프를 통해 다른 값을 할당 한 다음 그 값을 사용하는 방법입니다. – GeoffWilson

답변

1

패스? 분리 된 목록을 작성한 다음 분할하기위한 UDF를 작성하십시오. 또는 UDF를 원하지 않으면 코드에서 분할하십시오.