2014-01-17 2 views
1

내가 2 개 테이블 그래서 복사 행이 트리거는

A) 
Table A 
    ID | val | 
1. 1 m 
2. 2 n 
3. 1 o 
4 1 p 
5. 2 q 


Table B 
    ID | val 

내가 어떤 행 GET의이 같은 데이터 GET의 테이블 B의이 I 업데이트 테이블 A에 삽입 된 요구 사항이이 호출 될 때 trigger.My 트리거를 사용하여이 작업을 수행하려고하는 것은 내가 직면하고

CREATE Trigger tr_ForInserts 
ON A 
FOR INSERT 
AS 
BEGIN 
SET NOCOUNT ON; 
insert into B values(NEW.ID,NEW.Val); 
END 

문제처럼 보인다 내가 "나는 하나의 ID.How I 중복 항목이로 삽입됩니다 테이블 A의 한 행 식별하는 것이다"어떻게 트리거가 호출 된 후 삽입 된 정확한 행을 감지합니다. 쿼리에서 "B 값 (NEW.ID, New.Val)에 삽입"의 매개 변수 여야합니다 ..... .....이 새 값은 무엇이되어야합니까?

+0

여기에 체크 : http://www.codeproject.com/Articles/25600/Triggers-SQL-Server –

+0

'B (ID, 발) 선택 ID, 발 inserted'에서 삽입 -하지만 나는 왜이 두 번째 테이블이 존재하는지 질의 할 것이다. 축하합니다. –

답변

1
CREATE TRIGGER tg_insert ON A 
FOR INSERT 
AS 
BEGIN 
    INSERT B 
    SELECT id, val 
    FROM inserted 
END 
-1
CREATE Trigger tr_ForInserts 
ON A 
FOR INSERT 
AS 
BEGIN 
    SET NOCOUNT ON; 
    declare @id int; 
    declare @val int; 
    select @id=i.ID from inserted i;  
    select @val =i.Val from inserted i; 
    insert into B values(@id, @val); 
END 
+1

. 방아쇠가 부러졌습니다. 'inserted '는 0, 1 또는 * multiple * 행을 포함 할 수 있습니다. –