2013-06-12 53 views
1

我在爲我的數據庫創建觸發器時遇到問題。用自動增量值觸發更新另一個表

我有兩張桌子,叫他們A和AHistory。

A有一個ID和一個值。

我希望AHistory記錄設定時間的值和日期。

AHistory具有自動增加的ID,值和時間戳。

這是據我已經得到了:

CREATE TRIGGER Atrigger 
    ON A 
    AFTER INSERT 
AS 
BEGIN  
    INSERT INTO AHistory 
    SELECT value FROM INSERTED 
END 
GO 
+0

問題是?你錯過了時間戳? 'getdate()'是假設你使用SQL Server的答案。或者它是另一個RDBMS? – fancyPants

回答

0

假設你的數據庫架構看起來像

CREATE TABLE a 
    (id int identity primary key, 
    value varchar(32)); 

CREATE TABLE ahistory 
    (id int identity primary key, 
    aid int, value varchar(32), 
    eventdate datetime); 

,您的觸發可能看起來像

CREATE TRIGGER atrigger ON A 
AFTER INSERT AS 
    INSERT INTO ahistory (aid, value, eventdate) 
    SELECT id, value, GETDATE() FROM INSERTED; 

這裏是SQLFddle d emo

+0

謝謝,但問題是A中的ID和AHistory中的ID不一樣。 –

+0

在我的例子**中,它們不是一樣的**。它們碰巧具有相同的值,因爲它們被定義爲身份。因此請看看sqlfiddle並解釋你的問題到底是什麼。 – peterm