2013-08-23 3 views
0

이 테이블은 tbl_Users, tbl_prepaidtbl_Expire입니다.Sql server 두 개의 차이 테이블에서 하나의 테이블에 값을 삽입하십시오.

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 예를 들어 사용자 ID가 2 또는 3 인 모든 웹 사용자 ID에 대해 내 웹 사이트에 세션 [ "UserID"] 값이 있습니다. – Seeatme

답변

0

그냥 필요한 테이블 변수에 사용자 ID의 값을 가져, 그리고 삽입 문에서 변수 (@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

관련 문제