2013-08-23 82 views
0

我有這些表tbl_Users,tbl_prepaidtbl_ExpireSql server從兩個差異表中將插入值觸發到一個表中?

我在tbl_Prepaid上使用了一個觸發器,它從tbl_Prepaid中刪除卡號並在輸入後立即將它插入tbl_Expire

現在我想將userIDtbl_Users移動到tbl_Expire在同一個觸發器。

我該怎麼做?

這是我到目前爲止有:

alter TRIGGER trgAfterUpdate ON [dbo].[tbl_Prepaid] 
FOR UPDATE 
AS 
    declare @id_ppaid int; 
    declare @serial nvarchar(100); 
    declare @balance nvarchar(100); 
    declare @price int; 



    select @id_ppaid=i.id from inserted i; 
    select @serial=i.serial from inserted i;  
    select @balance=i.balance from inserted i; 
    select @price=i.price from inserted i; 


    if update(used) 

    insert into tbl_Expire(id_Pripaid,serial,balance,price) 
    values(@id_ppaid,@serial,@balance,@price); 


    delete from tbl_Prepaid where [email protected]_ppaid; 

    PRINT 'After updates trigger fired.' 
GO 
+2

如果觸發此觸發器的更新會影響多行,會發生什麼情況?嗯,哦。 –

+0

另外,您如何期望我們知道哪個用戶屬於您從'tbl_Prepaid'移動的行? –

+0

@Aaron Bertrand我在我的網站上有session [「UserID」]值,例如userid等於2或3任何數字都取決於用戶ID :) – Seeatme

回答

0

就去拿從所需的表變量用戶ID的價值,並在您的INSERT語句添加變量(@userid):

Declare @userid int 
Select @userid=userid from tablename 
insert into tbl_Expire(id_Pripaid,serial,balance,price,userid) 
values(@id_ppaid,@serial,@balance,@price,@userid); 
+0

謝謝,但問題是,當用戶登錄到所有者帳戶,然後添加卡號,然後按提交按鈕我想傳遞ID值到這個觸發器我需要使用存儲過程,但我怎麼能做ID? – Seeatme

相關問題