Sql server Sql server触发器是否从两个不同的表向一个表插入值?

Sql server Sql server触发器是否从两个不同的表向一个表插入值?,sql-server,Sql Server,我有这些表tbl_用户,tbl_预付费,以及tbl_过期 我在tbl\u preadvanced上使用触发器,从tbl\u preadvanced中删除卡号,并在输入后立即将其插入tbl\u Expire 现在我想在同一个触发器中将userID从tbl\u用户移动到tbl\u Expire 我怎么能做到 以下是我到目前为止的情况: alter TRIGGER trgAfterUpdate ON [dbo].[tbl_Prepaid] FOR UPDATE AS declare @id_

我有这些表
tbl_用户
tbl_预付费
,以及
tbl_过期

我在
tbl\u preadvanced
上使用触发器,从
tbl\u preadvanced
中删除卡号,并在输入后立即将其插入
tbl\u Expire

现在我想在同一个触发器中将
userID
tbl\u用户
移动到
tbl\u 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 id=@id_ppaid;

    PRINT 'After updates trigger fired.'
GO  

只需从所需的表中获取变量中的userid值,并在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);

如果触发此触发器的更新影响多行,会发生什么情况?哦,还有,你希望我们如何知道哪个用户属于你从
tbl_preadvanced
移动的行?@Aaron Bertrand我在我的网站上有session[“UserID”]值,例如UserID等于2或3任何数字取决于用户id:)你的触发器在你的网站上看不到你的session变量-你需要让它对SQL Server可见。我的建议是使用存储过程来执行更新,而不是依赖触发器,并将用户id传递到存储过程中。谢谢,我必须使用存储过程。谢谢,但问题是当用户登录到所有者帐户,然后添加卡号,然后按提交按钮时,我想将id值传递到此触发器中我需要使用存储过程,但我如何才能使用id?