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 6783 게시물 읽기
No. 6783
UPDATE 트리거
작성자
DB
작성일
2014-01-23 10:44
조회수
8,310

TEMP A 테이블이 실행될때 이름 컬럼의 값은 무조건

TEMP B 테이블의 이름 컬럼값으로 업데이트를 하는 트리거 문을 만드려고 합니다..

 

부탁드리겠습니다 ㅜㅜ

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

예를 들어주세요.

우욱님이 2014-01-23 10:51에 작성한 댓글입니다. Edit

예를들어

temp A 라는 테이블에 이름, 나이 컬럼이 존재합니다.

이름이 홍길동이고 나이가 23으로 입력을 받아옵니다. 이 tempA 테이블이 업데이트 될때

나이부분은 temp B에 있는 나이로 업데이트 되게 해주세요.

(조건 : temp A, temp B 이름 컬럼의 이름 값은 동일해야 함)

temp B에는 홍길동 25살로 되어있습니다.

즉, temp A가 업데이트 됬을때의 결과값은

홍길동 25 로 받아와야 하는 거죠..

db님이 2014-01-23 11:36에 작성한 댓글입니다.
이 댓글은 2014-01-23 11:37에 마지막으로 수정되었습니다. Edit

CREATE TABLE tempA

(
name NVARCHAR(10) NOT NULL
, age INT NOT NULL
, dummy INT NOT NULL
)
;
CREATE TABLE tempB
(
name NVARCHAR(10) NOT NULL
, age INT NOT NULL
)
;
INSERT INTO tempA( name, age, dummy ) VALUES( N'홍길동', 23, 1 )
;
INSERT INTO tempB( name, age ) VALUES( N'홍길동', 25 )
;
GO
CREATE TRIGGER tempA_uDummy ON tempA
AFTER UPDATE
AS
UPDATE tempA
SET age = bb.age
FROM tempA AS aa
INNER JOIN tempB AS bb
ON aa.name = bb.name
WHERE bb.name IS NOT NULL
;
GO
SELECT *
FROM tempA
;
UPDATE tempA
SET dummy = 2
;
SELECT *
FROM tempA
;
 
 
--그런데 아무리 다시 봐도 SQL 2000 시절에도 잘 안쓰였을 법한 전근대적인 방법을 왜! 사용할까요.. -_-;;
--걍 join한걸 view로 만들어서 쓰지.. 휴...
우욱님이 2014-01-23 22:36에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
6787전화번호 번호이동에 따른 전화번호 업데이트 관련 문의입니다. [6]
골프
2014-02-07
8703
6785IP접속 불가 [1]
신승범
2014-02-04
7887
6784group by 에서 최근값 가져오기 [1]
둥둥이
2014-01-23
8659
6783UPDATE 트리거 [3]
DB
2014-01-23
8310
6782네트워크 스토리지 복구 ㅠㅠ [1]
조중규
2014-01-03
8391
6781Select에 관하여 질문드려요.. [2]
초보
2014-01-03
8007
67802005에서 2012로 업그레이드할때 [1]
김기만
2013-12-30
10184
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.051초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다