하.. 3일동안 밤낮으로 찾아다녀도 처리를 못하네요
일단 이걸 사용하려는 목적은
A서버에 있는 a 테이블에 insert,delete, update 시
B서버에 있는 b 테이블에 같은 방식으로 insert,delete,update 가 되게 하는게 목적입니다
(a 테이블 구조와 b 테이블 구조는 동일합니다)
A서버에서
select * from B.DB명.dbo.b 를 입력하면 잘 나옵니다
insert into B.DB명.dbo.b values (1) 을 입력하면 잘 들어갑니다
이걸 보면 서버와 연결은 잘 된걸로 봐도 되는건가요?
근데 문제는 트리거를 생성 후 입니다
A 서버에서
------------------------------
create trigger trg_test
on DB명.dbo.aafter insertasSET XACT_ABORT ONinsert into B.DB명.dbo.b
select price
from inserted
SET XACT_ABORT OFF
-------------------------------
트리거 생성까지 잘 되구요
위에 문장
select * from B.DB명.dbo.b
insert into B.DB명.dbo.b values (1)
도 잘 됩니다
그 다음 a 테이블에 데이터가 입력이 될 때 b 테이블도 동시에 이뤄저야 하는데
트리거 생성 후 A 서버에서
insert into a(price) values(1) 이걸 실행 시
연결된 서버 "B"의 OLE DB 공급자 "SQLNCLI10"이(가) 메시지 "트랜잭션이 이미 암시적 또는 명시적으로 커밋되거나 중단되었습니다."을(를) 반환했습니다.
메시지 7391, 수준 16, 상태 2, 프로시저 trg_test, 줄 6
연결된 서버 "B"의 OLE DB 공급자 "SQLNCLI10"이(가) 분산 트랜잭션을 시작할 수 없으므로 요청한 작업을 수행할 수 없습니다.
----------------------------------------------
아무리 찾아봐도 답이 없네요..
단서라도 던져주시면 ㅠㅠ
새해 복 많이 받으시고 아침부터 긴 글 읽어주셔서 감사합니다(__)
http://www.sqler.com/563579
참조 해보세요~
헌데 연결된 서버로 트리거로 insert, update 하시게 되면 좀....
연결된 서버가 어떤 용도 인지는 모르겠으나,
연결된 서버 문제 시 주 서버에도 문제가 되지 않을까 생각됩니다.