2013-08-23 68 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

相关问题