2014-01-17 51 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 

所以我在当任何行获取的插入表格中的同一数据获取的表B.这是我更新的要求我试图用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我重复条目”会在触发器被调用后检测到插入的确切行。什么应该是查询中的参数“插入到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或*多个*行。 –

相关问题