현재 서버 1개에 여러 DB를 생성해서 사용합니다.
임의로 A DB, B DB, C DB, D DB라고 했을시
모든 DB의 테이블 구조는 같습니다.
현재 A DB의 USER Table 을 insert 하면
트리거를 이용해 모든 DB 의 USER TABLE에 insert 해 줍니다.
ex)
IF NOT EXISTS(SELECT user_id FROM B.dbo.USER WHERE USER_ID = @USER_ID )
BEGIN
INSERT INTO UNIERP_B.dbo.USER SELECT * FROM USER WHERE BP_CD = @USER_ID
END
IF NOT EXISTS(SELECT user_id FROM C.dbo.USER WHERE USER_ID = @USER_ID )
BEGIN
INSERT INTO UNIERP_C.dbo.USER SELECT * FROM USER WHERE BP_CD = @USER_ID
END
.
.
(D도 같은 방법)
그런데 이제 B, C, D에서도 USER TABLE에 데이터를 삽입할수 있고,
그렇게 되었을이 INSERT 되는 DB 이외의 모든 DB에 데이터를 넣고 싶습니다.
A테이블의 트리거를 B,C,D에 생성 해도 괜찮을까요?
그렇게 되면 B에서 다시 트리거가 돌아가고, 그럴거 같은데...
좋은 방법이 있을까요?
트리거 리커시브가 발생할 수 있으므로 이런 부분은 프로시저에서 명시적으로 처리하는게 좋을 듯 합니다.