2014-12-02 4 views
0

Я новичок в SQL Server.Вставка существующего значения столбца в новую таблицу при обновлении существующего значения в SQL Server

Мне нужен один ответ, что это, у меня есть таблица tblemployee и столбцы

empid, 
name, 
paddr1, 
paddr2, 
pcity, 
pstate, 
pzip, 
caddr1, 
caddr2, 
ccity, 
cstate, 
czip 

У меня есть еще одна таблица tblpaddresshistory и столбцы

paddrlistid, 
paddr1, 
paddr2, 
pcity, 
pstate, 
pzip 

и я до сих пор другой стол tblcaddresshistory с этими колонками

caddrlistid, 
caddr1, 
caddr2, 
ccity, 
cstate, 
czip 

Вот мой вопрос: когда я обновляю tblemployee значений столбца paddr1, paddr2, pcity, pstate, pzip, caddr1, caddr2, ccity, cstate, czip, старые значения должны быть вставлены в tblpaddresshistory и tblcaddresshistory, а новые значения должны быть обновлены в tblemployee.

+0

Добро пожаловать в Переполнение стека. Посмотрите [здесь] (http://stackoverflow.com/help/how-to-ask), чтобы узнать, как задать правильный вопрос и получить ответ здесь. –

ответ

0
Try with this trigger 

CREATE TRIGGER dbo.tr_tblemployee 
ON dbo.tblemployee 
AFTER UPDATE 
AS 
    BEGIN 
     IF (UPDATE(paddr1) 
      OR UPDATE(paddr2) 
      OR UPDATE (pcity) 
      OR UPDATE(pstate) 
      OR UPDATE(pzip)) 
     BEGIN 
      INSERT INTO dbo.tblpaddresshistory 
         (paddr1, 
         paddr2, 
         pcity, 
         pstate, 
         pzip) 
      SELECT paddr1, 
        paddr2, 
        pcity, 
        pstate, 
        pzip 
      FROM deleted; 
     END 

     IF (UPDATE(caddr1) 
      OR UPDATE(caddr2) 
      OR UPDATE (ccity) 
      OR UPDATE(cstate) 
      OR UPDATE(czip)) 
     BEGIN 
      INSERT INTO dbo.tblcaddresshistory 
         (caddr1, 
         caddr2, 
         ccity, 
         cstate, 
         czip) 
      SELECT caddr1, 
        caddr2, 
        ccity, 
        cstate, 
        czip 
      FROM deleted; 
     END 
    END; 
Смежные вопросы