2011-02-14 4 views
1

을 트리거하는 문을 실행하면 INSERT INTO 트리거가 발생합니다. 삽입/삭제 된 객체가 트리거에서 나타내는 테이블/행은 무엇입니까? 예 :도움말 삽입 및 삭제 된 테이블 이해 SQL Server

INSERT INTO Person.person (personID, name) VALUES (1, 'robert') 

CREATE TRIGGER myTrigger 
ON Person.person 
AFTER INSERT AS 
BEGIN 
insert into Person.PersonMovies (personID, movieID) 
select inserted.personID from inserted _--i know the code is incomplete, but i'm curious only about the inserted part._ 
END 

삽입 된 테이블이 보유한 레코드가 무엇인지 혼란 스럽습니다. 트리거 또는 Person.PersonMovies 테이블을 트리거 한 삽입 문의 레코드일까요?

답변

2

예, 삽입/삭제 된 테이블은 트리거를 유발 한 문에 의해 변경된 레코드에 대한 트리거 코드 액세스 권한을 제공합니다. 또한 명령문이 여러 행에 영향을 줄 수 있으므로 삭제되거나 삽입 된 테이블에 여러 레코드가있을 수 있습니다.

+0

도와 주셔서 감사합니다. –

0

삽입 된 테이블에는 트리거가 시작된 원래 Insert 문의 행이 들어 있습니다.

도 참조하십시오. this MSDN article.

0

삽입 및 삭제 된 가상 테이블은 트리거를 실행 한 명령문에 의해 작성되거나 삭제 된 테이블의 각 행에 대해 하나의 레코드를 보유합니다. 업데이트의 경우 삭제 된 테이블은 이전 버전의 레코드를 보유하고 삽입 된 테이블은 새로운 레코드를 보유합니다. 가상 테이블의 스키마는 실제 테이블과 일치합니다.

1

deleted의 행은 ON 절에 정의 된 표를 기반으로합니다.

관련 문제