2012-08-03 103 views
0

計算字段我試着寫一個SQL觸發器具有下列近似形式:使用與SQL觸發器

CREATE TRIGGER TableABSync ON TableA 
FOR INSERT AS 

INSERT INTO TableB 
     (col1, col2, col3, col4) 
    SELECT 
     PK_ColA, ColB, ColC - ColD, ColE * TableB.Col3 
    FROM inserted 

所以我想用新生成的COL3計算COL4。我需要分階段進行嗎?

乾杯

回答

1

你爲什麼不直接使用類似:

CREATE TRIGGER TableABSync ON TableA 
FOR INSERT AS 

INSERT INTO TableB 
     (col1, col2, col3, col4) 
    SELECT 
     PK_ColA, ColB, ColC - ColD, ColE *(TableB.ColC - TableB.ColD) 
    FROM inserted 
+0

感謝。最初的規範讓我感到困惑,但這正是解決方案。 – Sufo 2012-08-03 11:34:49

0

問題無關,與觸發器或插入 - 你不能SELECT子句中來自中引用的計算值條款相同的SELECT條款。

可能:

CREATE TRIGGER TableABSync ON TableA 
FOR INSERT AS 

INSERT INTO TableB 
     (col1, col2, col3, col4) 
    SELECT 
     PK_ColA, ColB, ColC - ColD as Col3, ColE * .Col3 
    FROM 
     (
      SELECT PK_ColA, ColB, ColC - ColD as Col3,ColE 
      FROM inserted 
     ) t