2010-08-17 4 views
1

두 개의 개별 SQL 서버에 저장된 레코드 삭제시 약간의 문제가 있습니다.두 개의 별도 SQL 데이터 원본에서 레코드 삭제

하나의 데이터 소스에 연결된 delete button commandfield가있는 DataGrid에서 ASP.NET databound 컨트롤을 사용하고 있습니다.

같은 레코드를 다른 데이터 소스에서 동시에 삭제할 수 있습니까?

조언을 주시면 감사하겠습니다.

+0

모든 의견을 보내 주셔서 감사합니다. – user423016

답변

1

ObjectDataSource를 사용하고 분산 트랜잭션에서 두 서버 모두에서 delete를 실행하도록 코드를 수정하십시오.

0

필요로하는 기능을 얻기 위해/상속/정면을 관리하는 레이어를 작성할 수 있습니까? ... 유사하게 보입니다. Ladislav Mrnka가 저를 때렸습니다.

+0

... 나는 당신에게 별도의 BOL과 DAL이 없다고 추측하고 있습니까? 그렇지 않으면 이것은 간단합니다. 두 개의 쿼리를 실행하는 –

1

MSSQLServer에서 SQLDataSource를 사용하려는 경우 올바른 방법은 "연결된 서버"기능을 사용하여 서로 다른 서버에 서버를 추가하는 것입니다.

그런 다음 두 데이터베이스에서 필요로하는 레코드를 삭제하는 저장 프로 시저를 생성하십시오. 저장 프로 시저를 모눈의 delete 메서드에 연결하십시오.

편집 : 이 내용은 SQLServer 버전에 따라 다릅니다. 그러나 저장 프로 시저가 지원된다면이를 수행 할 수있는 가장 유지하기 쉬운 방법이라고 생각합니다.

0

SQL의 특정 버전에 따라 이 작업을 수행 할 수 있습니다 (하나는 모르지만 존재할 수 있음). .NET 코드에서 MSSQL을 사용하는 가장 기본적인 방법은 두 개의 서로 다른 SQL 연결에 대해 쿼리를 두 번 실행하는 것입니다 (데이터가 DB 내의 다른 테이블이나 동일한 서버의 두 DB에있는 두 개의 다른 서버에 있다고 언급했기 때문에)).

+0

은 프로세스를 비대칭으로 만들어 데이터 불일치의 원인이되는 실패 가능성을 더욱 높입니다. – Matthew

관련 문제