2011-10-31 2 views
1

한 쌍의 데이터베이스가 있습니다. 하나는 라이브 데이터베이스이고 다른 하나는 해당 라이브 데이터베이스의 구성을 테스트하는 데 사용됩니다. 두 서버 모두 동일한 서버에 있습니다.대량 업데이트로 업데이트 및 삽입 (SQL Server)

사용자 (PK UserId, FK MainGroupId)와 그룹 (PK GroupId) 및 그룹 구성원 (PK GroupMemberId, FK GroupId 및 UserId)의 세 가지 테이블이 있습니다.

테이블은 두 데이터베이스 모두에서 동일한 스키마이지만 테스트 데이터베이스에는 특수 테스트 사용자 집합이 있습니다. 그룹은 대부분 안정적이지만 때로는 그룹을 추가하고 경우에 따라 그룹의 열 데이터를 변경합니다. GroupMembers는 동일하지만 테스트 데이터베이스에서 테스트 사용자를 나타냅니다.

프로그래밍 방식으로 라이브에서 테스트 사용자로 그룹 테이블을 업데이트 할 수 있어야합니다. 대량 복사 작업을 사용하고 싶지만 먼저 그룹 테이블을 삭제해야하므로 제약 조건 위반이 발생합니다.

더미 테이블에 테이블을 대량 복사 한 다음 새 행을 삽입하고 기존 행을 업데이트하여 프로세스를 게시 할 수 있습니다. 그러나 내 문제는 그룹과 같은 약 30 테이블이 있으며 UPDATE SET 메서드에서 모든 열 이름을 저장 프로 시저로 인코딩 싶지 않습니다. 나는 또한 그것을 대량으로 할 수 있기를 바란다.

DBA는 제약 조건을 일시적으로 삭제할 수있는 ALTER TABLE 권한을 부여하는 것에 대해 모호합니다.

다른 제안 사항이 있으십니까?

답변

2

두 데이터베이스가 같은 서버에 있으므로 왜 MERGE 문을 사용하지 않습니까?

+0

내가 병합 성명을 들어 본 적이 없기 때문에 그럴 것입니다! 나를 교육시켜 줘서 고마워, 큰 도움이되었다. –

0

내보내기 및 가져 오기를 선택하십시오. 당신이 올바른 순서로 그것을한다면 그것은 올바르게 작동해야합니다.

관련 문제