2014-01-17 81 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或*多個*行。 –

相關問題