부모/자식 레코드가 포함 된 테이블 A가 있습니다. 표 A를 참조하는 표 B가 있습니다. 외래 키는 적용되지 않습니다. 올바른 부모를 가리 키도록 자식 레코드를 업데이트하려면 대량 삭제/삽입을 수행하고 있습니다. 그러면 테이블 B에서 업데이트해야하는 새 기본 키가 자식 레코드에 할당됩니다.대량 삭제/삽입 후 외래 키 테이블 참조를 업데이트 하시겠습니까?
행 처리로 커서 나 행을 사용하지 않고이를 수행 할 수있는 방법이 있습니까?
부모/자식 레코드가 포함 된 테이블 A가 있습니다. 표 A를 참조하는 표 B가 있습니다. 외래 키는 적용되지 않습니다. 올바른 부모를 가리 키도록 자식 레코드를 업데이트하려면 대량 삭제/삽입을 수행하고 있습니다. 그러면 테이블 B에서 업데이트해야하는 새 기본 키가 자식 레코드에 할당됩니다.대량 삭제/삽입 후 외래 키 테이블 참조를 업데이트 하시겠습니까?
행 처리로 커서 나 행을 사용하지 않고이를 수행 할 수있는 방법이 있습니까?
일부 샘플 데이터를 게시하고 어떻게 수정해야합니까? 실제 테이블 스키마를 보지 않고서는 몇 가지 가정 만 할 수 있으므로 완벽하게 작동하지 않을 수 있습니다.
select PrimaryKeyField AS RowID, ChildKeyField AS OldChildID, newid() AS NewChildID
into #UpdateTable
from TableA
where SomeConditionToSelectTheChildRecords
update TableA
set TableA.ChildKeyField = #UpdateTable.NewChildID
from TableA
inner join #UpdateTable on TableA.PrimaryKeyField = #UpdateTable.RowID
update TableB
set TableB.ChildKeyField = #UpdateTable.NewChildID
from TableB
inner join #UpdateTable on TableB.ChildKeyField = #UpdateTable.OldChildID
참고 실제로 표 A의 행을 삭제 한 다음 다시 추가하고 있습니다. – Kenoyer130
먼저 행을 삭제해야합니까? 당신이 단지 그들을 업데이트 할 수있는 것처럼 보입니다, 아니면 아마도 나는 그 문제를 오해하고 있습니다. – McCee
트리거를 사용할 수없는 특별한 이유가 있습니까? 일괄 업데이트가 비공개 작업입니까? –
한 번의 패치 스크립트. – Kenoyer130