먼저 항상 친절한 답변을 주시는 우욱님 감사드립니다.
혹시 저와 비슷한 고민을 하실? 분들에게 도움이 되었으면 하여 글 남깁니다.
ex) exec SET_VISIBLE '1000002481,1000002482,','3,2,'
프로시저를 호출하면 '메뉴 ID1,메뉴 ID2,' , '메뉴1 값1, 메뉴2 값2,' 즉 메뉴 ID1에 해당하는 값1을 , 구분자로 전달합니다.
아래의 프로시저는 , 구분자로 하여 메뉴 ID가 존재하는 (마지막까지) 반복문을 돌면 업데이트를 처리합니다.
이상입니다. ^ㅡ^
CREATE PROCEDURE DBO.SET_VISIBLE
@ALLIDX NVarchar(200), -- 메뉴 넘버
@IDX NVarchar(200) -- 값
AS
BEGIN
WHILE CHARINDEX(',',@ALLIDX)<> 0 -- CHARINDEX(A, B) 는 B.Split('A') 랑 같다고 보면 될듯
BEGIN
UPDATE tbl_BillingInfo
SET f_PlusCount = SUBSTRING(@IDX, 1, CHARINDEX(',', @IDX) -1 ) -- , 로 나눈 첫번째 인자를 UPDATE 시킨다.
WHERE f_ProductID = SUBSTRING(@ALLIDX, 1, CHARINDEX(',', @ALLIDX) -1 ) -- , 로 나눈 첫번째 인자를 UPDATE 시킨다.
SET @ALLIDX = SUBSTRING(@ALLIDX, CHARINDEX(',', @ALLIDX) +1, LEN(@ALLIDX)) -- 업데이트 된 맨 앞 한자리를 빼고 다시 SET 해주면서 루프를
END
END
|