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 6768 게시물 읽기
No. 6768
다중 업데이트? 배열 업데이트? 궁금해요
작성자
이성원(wolfre)
작성일
2013-12-06 17:56ⓒ
2013-12-06 17:59ⓜ
조회수
9,279

안녕하세요 ^ㅡ^ DB 사랑에서 많이 배우는 초보입니다.

 

현재 쿼리를 짜다가 문득 궁금한 점이 생겨 질문 드립니다.

 

간단하게 아래와 같은 프로시저가 있는데요. @v_Type A면 필드 1 ~ 3를 업데이트합니다.

 

질문은 전체 A,B,C Type을 업데이트 하거나 A, C만 업데이트 한다면 지금 구조로는 불가능해 보이는데. 뭔가 방법이 있나요?

 

 

ALTER PROCEDURE [dbo].[sp_Process]

(

@v_Type VARCHAR(10),

@v_1 INT,

@v_2 INT,

@v_3 INT

)

AS

 

BEGIN

SET @v_RetMessage = 'None'

 

BEGIN TRY

 

IF @v_Type = 'A'

BEGIN

UPDATE tbl_Table

SET f_PlusCount = @v_1

WHERE f_ProductID = '1000002481'

 

UPDATE tbl_Table

SET f_PlusCount = @v_2

WHERE f_ProductID = '1000002482'

 

UPDATE tbl_Table

SET f_PlusCount = @v_3

WHERE f_ProductID = '1000002483'

 

END

 

ELSE IF @v_Type ='B'

BEGIN

UPDATE tbl_Table

SET f_PlusCount = @v_1

WHERE f_ProductID = 'world01_g'

 

UPDATE tbl_Table

SET f_PlusCount = @v_2

WHERE f_ProductID = 'world02_g'

 

UPDATE tbl_Table

SET f_PlusCount = @v_3

WHERE f_ProductID = 'world03_g'

END

 

END

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

간단하게 아래와 같은 프로시저가 있는데요. @v_Type A면 필드 1 ~ 3를 업데이트합니다.

 

=> 'A'가 들어오면 f_ProductID가 각기 다른 3개의 record를 업데이트 하도록 프로시저가 되어 있군요. 네. 이건 알겠습니다.

 

질문은 전체 A,B,C Type을 업데이트 하거나 A, C만 업데이트 한다면 지금 구조로는 불가능해 보이는데. 뭔가 방법이 있나요?

 

=> A, B, C는 @v_Type으로 입력받는 값으로 보이는데 이를 업데이트 한다???

=> A, C만 업데이트 한다면 지금 프로시저에서 C일때 업데이트 하는 코드만 추가되면 되겠군요.

=> 뭐가 불가능한거죠?

우욱님이 2013-12-08 03:08에 작성한 댓글입니다. Edit

만약 아래와 같은 sp가 존재한다면 ,를 구분자로 ID_1를 값1 로 업데이트, 그다음 업데이트 이런식으로 하고 싶은데 방법을 모르겠네요

 

exec SP_Call 'ID_1, ID_2' , '값1 , 값2'

 

현재는 하드코딩으로 업데이트를 진행하는데 While 문으로 반복 수행할 수 있을 것 같은데 방법을 모르겠네요 ㅠ.ㅠ

 

이성원님이 2013-12-09 10:15에 작성한 댓글입니다. Edit

TVP를 사용하세요.

Table 형태로 프로시저에 넘기고 프로시저에서는 기존 테이블과 merge하거나 join해서 업데이트하면 깔꼼하게 한 방에 끝나지요.

자세한 내용은 이 도서의 16장을 보시거나

각종 블로그에 있는 내용을 살펴보시면 됩니다.

 

 

우욱님이 2013-12-09 10:45에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
6771데이터 레코드 양이 많을시 select 등 쿼리 속도 [4]
질문
2013-12-09
10307
6770자답입니다. ^ㅡ^ [3]
wolfre
2013-12-09
7981
6769안녕하세요.. [4]
초보입니다.
2013-12-09
7629
6768다중 업데이트? 배열 업데이트? 궁금해요 [3]
이성원
2013-12-06
9279
6767MSSQL에서 로그인사용자의 기본 언어란? [1]
ms
2013-12-06
7895
6766지난달 큰도움 받고 다시한번 문의드립니다 ㅠㅠ [1]
최보현
2013-12-06
7768
6765컬럼명 바꾸기 [2]
김우성
2013-11-25
7576
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.048초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다