WHERE 조건과 ORDER BY를 기반으로 지정된 테이블에 마지막 행을 복사하기 위해 테이블의 트리거를 사용하고 있습니다. 하나의 트리거를 사용하면 문제가 없어지며 각각의 테이블에 복사됩니다. 하지만 두 개의 트리거가 실행되어 이전 행의 복제본이 삽입 될 필요가없는 테이블에 나타납니다. (SQL2008 관리 Studio). 부품 번호에 따라이 행을 보낼 특정 표가 있습니다.WHERE 조건이 참이면 선택한 테이블 중 하나에 마지막 행을 삽입하십시오.
ALTER TRIGGER NewT3650 ON JD_Passdata
FOR INSERT
AS
INSERT T3_650_TestData (SerialNumber, Partnumber, etc)
SELECT TOP 1 SerialNumber, Partnumber, etc
FROM JD_Passdata
WHERE partnumber = 'T3_650'
ORDER BY passdata_ndx DESC
ALTER TRIGGER NewT4450 ON JD_Passdata
FOR INSERT
AS
INSERT T4_450_TestData (SerialNumber, Partnumber, etc)
SELECT TOP 1 SerialNumber, Partnumber, etc
FROM JD_Passdata
WHERE partnumber = 'T4_450'
ORDER BY passdata_ndx DESC
원래 PassData 테이블 : 테이블 테이블 1
201245001, T3_650
201245002, T3_650
201245003, T3_650
반환 결과 2
201244999, T4_450
201244999, T4_450
201244999, T4_450
나는
싶습니다에 대한
201244999, T4_450
201245001, T3_650
201245002, T3_650
201245003, T3_650
결과를 반환 여기에 구조입니다 OR 조건 또는 UNION은 마지막 행만 가져 와서 올바른 테이블에 입력하고 가능한 경우 추가 트리거를 제거합니다. 그렇지 않으면 복제 및 업데이트에 대한 검사에서도이를 수행 할 수 있습니다. 또한 데이터베이스가 DESC를 수행하기 위해 상당히 커질 것이므로 모든 항목이 느려질 수 있습니다. 순서를 제거하는 방법도 고려 사항입니다. 모든 sugesstions이 크게 감상 할 수
... THX