조건이 참일 때 여러 테이블에서 여러 행을 삭제하고 싶습니다.msSQL 다중 삭제 다중 조인
나는이 함께 삭제할 것을 선택할 수 있습니다
select *
from ProcessStepSt01
left join ProcessStepSt02 on ProcessStepSt01.Workpiece=ProcessStepSt02.Workpiece
left join ProcessStepSt03 on ProcessStepSt01.Workpiece=ProcessStepSt03.Workpiece
where ProcessStepSt01.Workpiece
in (
select Workpiece from Workpieces
where datediff(day,workpieces.CreationTime,current_timestamp)>=30
)
모든 ProcessStepStXX은 워크 (기본 키), TeilIO 시작, 엔데와 TeilVorh가 포함되어 있습니다. 그래서 결과는
Workpiece TeilIO TeilVorh Start Ende Workpiece_1 TeilIO_1 ... Workpiece_2 ...
1111 1 1 1 1 (null) (null) (null)
abc 1 1 1 1 abc 1 abc
입니다하지만 와 선택 *이을 삭제 교체 할 때 오류가 발생합니다 : "잘못된 구문은 다음 왼쪽 키워드"
또한
delete ProcessStepSt01,ProcessStepSt02,ProcessStepSt03
시도
(선택 후 *는 모두 동일하게 유지됨)
하지만 '잘못된 것 ntax near ',' "
내가 원하는 것은 공작물이 in ... (...) 문에서 선택과 일치하는 ProcessStepSt01, ProcessStepSt02, ProcesStepSt03에서 모든 행을 삭제하는 것입니다.
그래서 여기 내 질문은 :
- 왜 내 구문이 작동하지 않는 이유는 무엇입니까?
- 어떻게 작동합니까?
마지막으로 내가
CREATE TRIGGER TRG_AutoRemove
ON workpieces
AFTER INSERT AS
BEGIN
...
END
주기적 을하고 싶지 그러나 모든 삽입이 조금 과잉 (약 삽입 매 2 ~ 3 초)이다와 나는 그 일을 생각한다.
한 시간에 한 번씩 할 수있는 방법이 있습니까?
참고 : MSSQL을 사용하고 있습니다.
귀하의 조언에 감사드립니다.