확장 UPDATE
페이지 정보
작성자 서방님 댓글 1건 조회 146회 작성일 09-03-30 16:47본문
MSSQL에서(만?) UPDATE에 FROM을 이용해 JOIN을 할 수 있다.
UPDATE 앨리어스명 SET
컬럼 = 값
FROM 업데이트할테이블 AS 앨리어스명
컬럼 = 값
FROM 업데이트할테이블 AS 앨리어스명
FROM을 이용해 앨리어스를 사용할 수 있다는건 다른 테이블과의 JOIN을 사용하여 여러 컬럼을 쉽게 업데이트할 수 있다는걸 의미한다.
UPDATE TA SET
ColumnA = TB.ColumnX
, ColumnB = TB.ColumnY
FROM TableA AS TA
INNER JOIN TableB AS TB WITH(NOLOCK) ON TA.JoinColumn = TB.JoinColumn
WHERE TA.ColumnW = 'XXX'
ColumnA = TB.ColumnX
, ColumnB = TB.ColumnY
FROM TableA AS TA
INNER JOIN TableB AS TB WITH(NOLOCK) ON TA.JoinColumn = TB.JoinColumn
WHERE TA.ColumnW = 'XXX'
오라클의 확장 UPDATE는 다음과 같은 기능이 된다.
컬럼을 묶어서 사용할 수 있단다.
물론 조건 등에서 자주 사용하던 방식이 업데이트에서 사용된다는 것뿐이긴 하다.
UPDATE TableA TA SET
(ColumnA, ColumnB) = (
SELECT ColumnX, ColumnY
FROM TableB TB
WHERE TA.JoinColumn = TB.JoinColumn
)
WHERE TA.ColumnW = 'XXX'
(ColumnA, ColumnB) = (
SELECT ColumnX, ColumnY
FROM TableB TB
WHERE TA.JoinColumn = TB.JoinColumn
)
WHERE TA.ColumnW = 'XXX'
만약, TB테이블의 컬럼값에도 조건이 들어간다면 UPDATE 조건에도 쿼리가 필요할 것이다.
댓글목록
등록된 댓글이 없습니다.