SQL2k5를 사용하여 많은 다른 테이블을 채울 열이 포함 된 준비 테이블을 가지고 있습니다. 예를 들어, 이런 성명 :TSQL 스냅 샷 격리
INSERT INTO [appTable1] ([colA], [colB])
SELECT [appTable1_colA], [appTable1_colB]
FROM [stageTable]
[appTable1] 다시 [stageTable]에 새로 삽입 된 행의 ID 열 값을 채울에 트리거; 이 예에서는 [stageTable]. [appTable1_ID]라고 말한 다음 다른 테이블에 FK로 삽입합니다. 유사한 문은 다음과 같습니다.
INSERT INTO [appTable2] ([colA], [colB], [colC], [appTable1_FK])
SELECT [appTable2_colA], [appTable2_colB], [appTable2_colC], [appTable1_ID]
FROM [stageTable]
이 프로세스는 이와 같이 수많은 테이블을 통해 계속됩니다. 보시다시피,이 테이블은 프로세스가 끝날 때 잘 리면 준비 테이블의 SELECT에 WHERE 절을 포함하지 않습니다. 그러나 이로 인해이 트랜잭션 중간에이 준비 테이블에 레코드를 추가하는 다른 프로세스가있을 수 있으며이 레코드에는 이전에 채워진 FK가 포함되지 않습니다. 이 문제를 방지하기 위해이 성명서를 발표하고 싶습니까? :
이것이 최선의 해결책이라면 어떻게 이런 식으로해야할까요?
이것이 내 최고의 코스라고 생각합니다. 감사. – heath