2012-09-05 2 views
0

필자의 애플리케이션 요구 사항을 지원하기 위해 총알을 물고 트리거를 알게되었습니다. 테스트 테이블에서 테스트 트리거를 만들었습니까? 삽입 된 레코드에만 UPDATE 문이 영향을 미치도록 기준을 추가하는 방법INSERT 트리거 내의 UPDATE 문에 대한 좁은 기준

EDIT - inserted 테이블에 연결된 다른 예제를 발견했습니다. 일을하는 것처럼 보입니다. 사람들과의 온전한 체크를하고 싶습니다. 내가 엉망이되고 싶지 않기 때문에 명백하게 잘못된 것은 없습니다!

ALTER TRIGGER ztblTest_INSERT 
    ON we_ci_db.dbo.ztblTest 
    AFTER INSERT 
AS 
BEGIN 
SET NOCOUNT ON; 
UPDATE ztblTest 
SET TestFieldB=we_ci_db.dbo.ztblTest.TestFieldA 
WHERE TestID IN (SELECT DISTINCT TestID FROM inserted) 

END 
GO 

답변

2

inserted이라는 삽입/업데이트 된 레코드에 대한 임시 테이블이 있습니다. 이것은 당신이 업데이트 할 테이블과 같은 구조를 가져야 만합니다. 그래서 당신이 필요로하는 어떤 기준 (또는 당신의 질문에서 언급했듯이 where 절에서 사용)에 그것에 참여할 수 있습니다.

귀하의 질문에 직접 관련이 없지만 트리거는 삽입에 대해서만 신경을 쓰며, deleted이라는 트리거 중에 사용되는 삭제 된 레코드에 대한 임시 테이블도 있습니다.

MSDN article에는 임시 테이블을 사용하는 몇 가지 예가 있습니다.

관련 문제