SQL Server에서 BulkCopy에서 트리거가 작동하지 않습니다.

c# sqlbulkcopy sql-server triggers

문제

SqlBulkCopy를 사용하여 대량 레코드를 테이블에 삽입하는 응용 프로그램이 있습니다. 첫 번째 테이블에 추가 된 레코드를 다른 테이블에 삽입하는 트리거가 있습니다.

내가 삽입 할 때 C #에서 SqlBulkCopyOptions.FireTriggers를 작성했지만 Sql Server 2005에서는 작동하지 않습니다. SqlServer2008에서 잘 작동하면.

SQL Server 2005에서는 레코드가 첫 번째 테이블에 삽입 될 때마다 INSERTED 행의 레코드 하나만 두 번째 테이블에 나타납니다.

SQL Server 단독으로이 작업을 관리 할 수 ​​있습니까?

전문가 답변

한 가지 옵션은 스테이징 테이블 (두 번째 단순 테이블 - 일차적 인 데이터 모델의 일부가 아니라 대개 인덱싱 / 제약 / 트리거 / 등)에 대량 복사 한 다음 SELECT 기반 INSERT 를 실행하여 스테이징 테이블의 데이터를 기본 트랜잭션 테이블에 저장합니다. 이렇게하면 SqlBulkCopy 의 대역폭 이점을 얻을 수 있지만 최종 INSERT 대해 완전한 SQL Server 기능을 사용할 수 있습니다.



아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.