2

정말 기괴한 문제로 누군가 도와 줄 수 있기를 바랍니다.SQL Server 2005 복제 무결성 위반 SQL Server, 오류 번호 : 28549

사용자가이 오류를 받고 자신의 장치를 동기화 할 때 :

The row operation cannot be reapplied due to an integrity violation. Check the Publication filter. [ Table = ASSET_DETAIL,Operation = Insert/Update,RowGuid = {C92038E4-18EA-EE11-4C9F-2952CDECFCC7} ] HRESULT 0x80040E2F (28549)

우리가 서버로 이동 (테이블이 자산이라고합니다)이 행과 부모 행을 쿼리 유효하고 올바른 것으로 나타납니다. 더 나은 설명을 원할 경우 전체 필터 트리를 탐색 할 때 모든 데이터가 올바른 것처럼 보입니다.

우리가 DB에서 볼 수있는 것에서 인 데이터는 구독자에게 DB에 참조 무결성 제약 조건을 적용해야합니다. 또한 게시 필터에도 적용됩니다.

가입자에게이 문제가 발생하는 이유는 무엇입니까? 어떻게 해결할 수 있을까요?

또한 데이터가 아닌 경우 디바이스로 전송되는 데이터를 정확하게 로그 할 수 있습니까? sdf 파일에 대해 실행되는 명령문은 어떻게 발생했는지 식별합니다. 당신의 도움에 미리

감사합니다,

Morrislgn는

+0

정확히 같은 문제가 있습니다. 한 예로, 문제가되는 외부 키를 제거하고 참조 무결성을 적용하지 않고 처리하려고 시도하여이를 해결할 수있었습니다. 나는이 문제와 관련된 정보가 거의 없기 때문에이 질문에 현상금을 제안했다. 비슷한 문제가 해결되지 않은 Microsoft 연결에 최근 게시되었습니다 : http://connect.microsoft.com/SQLServer/feedback/details/668349/sql-ce-web-sync-pull-subscription-fails-to-initialize- 32 비트 플랫폼에서 64 비트에 대해 성공한 열 또는 테이블에 대한 무결성 제약 조건 –

답변

1

명령은 일반적으로 저장 프로 시저를 통해 구독자에 적용됩니다. 구독자가 다시 연결될 때 프로파일 러를 실행하여 실행중인 항목과 매개 변수를 확인합니다. 그게 무슨 일이 일어나는가에 대한 단서를 줄 수도 있습니다. 불행히도 더 구체적 일 수는 없습니다.

+0

우리는이 방법을 시도했지만 많이 사용하지 못했습니다. 감각이 가능하다.장치에서 얻은 정보를 바탕으로 행 GUID 및 테이블을 제공하지만 그 이상으로 추적 할 수는 없습니다. – Morrislgn

+0

yuo가 문제를 일으키는 행을 알고 있다면 문제를 거의 해결했습니다. 레코드는 고아 일 가능성이 높으며 모든 외래 키 제약 조건이 충족되고 상위 항목이 삭제되지 않았는지 확인하십시오. – Merlin

2

기술적으로 대답인지 확실하지는 않지만 문제가 해결 된 것은 확실합니다.

우리는 동료가 DB에서 FK 관계를 삭제했으며 누구에게도이를 알려주지 않는 것을 발견했습니다. 그래서 우리가 DB와 데이터를 볼 때 모든 것이 괜찮 았습니다.

스키마를 테스트 버전과 비교했을 때만 문제가 발생했습니다.

그래서이 경우의 대답은 별도의 DB로 스키마를 확인하는 것이 었습니다.

0

귀하의 제약 조건에 '복제 할 수 없음'조항을 사용하는 것과 관련이 있습니까? http://msdn.microsoft.com/en-us/library/ms180843.aspx 또는 http://msdn.microsoft.com/en-us/library/ms152529.aspx

복제를 사용하면 복제본에서 OrderHeaders 및 OrderLines에 대해 Orderhead를 삽입하여 Orderheader 레코드 앞에 가입자의 OrderLines를 삽입 한 다음 위반 사항을 얻을 수 있습니다.

Not For Replication을 지정하면 replication system을 통해 행이 게시자에서 이미 작성된 것처럼 행이 삽입 될 때 제약 조건에 대한 검사가 수행되지 않습니다.