한 쌍의 데이터베이스가 있습니다. 하나는 라이브 데이터베이스이고 다른 하나는 해당 라이브 데이터베이스의 구성을 테스트하는 데 사용됩니다. 두 서버 모두 동일한 서버에 있습니다.대량 업데이트로 업데이트 및 삽입 (SQL Server)
사용자 (PK UserId, FK MainGroupId)와 그룹 (PK GroupId) 및 그룹 구성원 (PK GroupMemberId, FK GroupId 및 UserId)의 세 가지 테이블이 있습니다.
테이블은 두 데이터베이스 모두에서 동일한 스키마이지만 테스트 데이터베이스에는 특수 테스트 사용자 집합이 있습니다. 그룹은 대부분 안정적이지만 때로는 그룹을 추가하고 경우에 따라 그룹의 열 데이터를 변경합니다. GroupMembers는 동일하지만 테스트 데이터베이스에서 테스트 사용자를 나타냅니다.
프로그래밍 방식으로 라이브에서 테스트 사용자로 그룹 테이블을 업데이트 할 수 있어야합니다. 대량 복사 작업을 사용하고 싶지만 먼저 그룹 테이블을 삭제해야하므로 제약 조건 위반이 발생합니다.
더미 테이블에 테이블을 대량 복사 한 다음 새 행을 삽입하고 기존 행을 업데이트하여 프로세스를 게시 할 수 있습니다. 그러나 내 문제는 그룹과 같은 약 30 테이블이 있으며 UPDATE SET 메서드에서 모든 열 이름을 저장 프로 시저로 인코딩 싶지 않습니다. 나는 또한 그것을 대량으로 할 수 있기를 바란다.
DBA는 제약 조건을 일시적으로 삭제할 수있는 ALTER TABLE 권한을 부여하는 것에 대해 모호합니다.
다른 제안 사항이 있으십니까?
내가 병합 성명을 들어 본 적이 없기 때문에 그럴 것입니다! 나를 교육시켜 줘서 고마워, 큰 도움이되었다. –