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 940 게시물 읽기
No. 940
분산 트랜잭션 에러...
작성자
권석기(wind2400)
작성일
2003-09-04 15:28ⓒ
2003-09-04 15:31ⓜ
조회수
5,606

원격 데이터베이스 연결을해서..

현재 db 의 s1이라는 테이블에 자료 입력시...원격으로 연결된 컴퓨터에도 같이 입력이 되는

트리거를 만들었는데...계속  에러가 나오네요..

 

 

클라이언트 네트워크 유틸리티에서 원격서버 추가 하였고..

em에서도 서버추가하고...테이블 검색까지는 잘되는데..

 

create table s1(id int, name varchar(10), ipsail datetime, pay int)


create trigger s1_in
on s1 for insert
as
insert into sangju.mydb.dbo.s1 select * from inserted


insert into s1 values(12,'sss', getdate(),444) 실행하면..

----------------------------------------------------------------------------------

서버: 메시지 7391, 수준 16, 상태 1, 프로시저 s1_in, 줄 4
OLE/DB 공급자 'SQLOLEDB'이(가) 분산 트랜잭션을 시작할 수 없으므로 작업을 수행할 수 없습니다.
[OLE/DB provider returned message: 지정한 트랜잭션 코디네이터에 새 트랜잭션을 기록할 수 없습니다.]
------------------------------------------------------------------------------------

계속 이런 에러가 나오네요..

 

똑같이 설정하고 코딩까지 똑같이 하면..다른 컴퓨터에서 다른 컴퓨터로 는 되는데..

현재 사용중이 컴으로 연결을 하면 에러가 나오네요..해결방법좀..ㅜ.ㅜ

 

계속 이런 에러가 나와요..

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

SET XACT_ABORT를 참조하세요

결론으로 말하면 트랜잭션 문에 SET XACT_ABORT on 옵션을 넣으세요

=================================================================

Transact-SQL 문에서 런타임 오류가 발생할 경우 Microsoft® SQL Server™가 자동으로 현재 트랜잭션을 롤백하게 할지 여부를 지정합니다.

구문

SET XACT_ABORT { ON | OFF }

비고

SET XACT_ABORT 옵션을 ON으로 설정하면 Transact-SQL 문에서 런타임 오류가 발생할 경우 전체 트랜잭션이 종료된 후 롤백됩니다. OFF로 설정하면 오류를 발생시킨 Transact-SQL 문만 롤백되고 처리 작업을 계속합니다. 구문 오류와 같은 컴파일 오류는 SET XACT_ABORT 옵션 설정으로 영향을 받지 않습니다.

SQL Server를 포함한 대부분의 OLE DB 공급자에 대한 암시적 또는 명시적 트랜잭션에서 데이터 수정 문에는 XACT_ABORT 옵션을 ON으로 설정해야 합니다. 공급자가 중첩 트랜잭션을 지원할 경우에만 이 옵션이 필요하지 않습니다. 자세한 내용은 분산 쿼리분산 트랜잭션을 참조하십시오.

SET XACT_ABORT 옵션은 실행시간이나 런타임에 설정되며, 구문 분석 시간에는 설정되지 않습니다.

예제

다음 예제는 다른 Transact-SQL 문이 있는 트랜잭션에서 외래 키 위반 오류를 발생시킵니다. 첫 번째 명령문 집합에서는 오류가 생성되지만 다른 명령문이 성공적으로 처리되고 트랜잭션이 성공적으로 커밋됩니다. 두 번째 명령문 집합에서는 SET XACT_ABORT 옵션이 ON으로 설정됩니다. 이렇게 설정하면 명령문 오류로 인해 일괄 처리가 종료되고 트랜잭션이 롤백됩니다.

CREATE TABLE t1 (a int PRIMARY KEY)
CREATE TABLE t2 (a int REFERENCES t1(a))
GO
INSERT INTO t1 VALUES (1)
INSERT INTO t1 VALUES (3)
INSERT INTO t1 VALUES (4)
INSERT INTO t1 VALUES (6)
GO
SET XACT_ABORT OFF
GO
BEGIN TRAN
INSERT INTO t2 VALUES (1)
INSERT INTO t2 VALUES (2) /* Foreign key error */
INSERT INTO t2 VALUES (3)
COMMIT TRAN
GO

SET XACT_ABORT ON
GO

BEGIN TRAN
INSERT INTO t2 VALUES (4)
INSERT INTO t2 VALUES (5) /* Foreign key error */
INSERT INTO t2 VALUES (6)
COMMIT TRAN
GO

/* Select shows only keys 1 and 3 added. 
   Key 2 insert failed and was rolled back, but
   XACT_ABORT was OFF and rest of transaction
   succeeded.
   Key 5 insert error with XACT_ABORT ON caused
   all of the second transaction to roll back. */

SELECT * 
FROM t2
GO

DROP TABLE t2
DROP TABLE t1
GO

관련 항목
방랑자님이 2003-09-11 13:14에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
944MS SQL 6.5, Transaction Log.. [1]
창훈
2003-09-08
4280
942스크립트 쿼리 실행시 collate에러임당.. [1]
음...
2003-09-05
3482
940분산 트랜잭션 에러... [1]
권석기
2003-09-04
5606
938복원? import? 궁금사항 [1]
하늘
2003-09-04
3737
936Server Application Error - 대응방법은...?
최세연
2003-09-04
3068
934[질문] EM에서 다른 유저 디비 안보이게 설정하는법
sql배움이
2003-09-03
3585
932mssql 툴에 대해.. [1]
정이라네
2003-09-03
3284
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다