database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
ㆍMS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MS-SQL Q&A 6770 게시물 읽기
No. 6770
자답입니다. ^ㅡ^
작성자
wolfre
작성일
2013-12-09 11:35
조회수
8,721

먼저 항상 친절한 답변을 주시는 우욱님 감사드립니다.

 

혹시 저와 비슷한 고민을 하실? 분들에게 도움이 되었으면 하여 글 남깁니다.

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

이 글에 대한 댓글이 총 3건 있습니다.

ㅠ.ㅠ 이 글은 게시번호 4752 : 다중 업데이트? 배열 업데이트? 궁금해요

대한 답글인데.. 게시 비밀번호를 까먹어서 수정을 못하네요...

 

죄송합니다 ㅠ.ㅠ

이성원(wolfre)님이 2013-12-09 11:37에 작성한 댓글입니다.

그래도 TVP 써보도록 해보세요.

 

WHILE보다 욜라 빨라요.

우욱님이 2013-12-09 11:38에 작성한 댓글입니다. Edit

넵. 우욱님이 답변 주신 TVP 로 응요해 볼게요 ^ㅡ^

 

항상 친절한 답변 감사드립니다!!!

이성원(wolfre)님이 2013-12-09 11:40에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
6774select절 스칼라서브쿼리 반환되는 컬럼이 여러개일때 어떻게 하면 좋을까요?(다중컬럼) [3]
cReAm
2013-12-11
11373
6773이게 가능할까요? [2]
궁금
2013-12-10
8756
6771데이터 레코드 양이 많을시 select 등 쿼리 속도 [4]
질문
2013-12-09
10964
6770자답입니다. ^ㅡ^ [3]
wolfre
2013-12-09
8721
6769안녕하세요.. [4]
초보입니다.
2013-12-09
8264
6768다중 업데이트? 배열 업데이트? 궁금해요 [3]
이성원
2013-12-06
10115
6767MSSQL에서 로그인사용자의 기본 언어란? [1]
ms
2013-12-06
8513
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다