簡體   English   中英

SQL Server 2008 R2觸發器

[英]SQL Server 2008 R2 Trigger

我知道有很多Q問這個問題,但在看完之后,似乎沒有人像我一樣遇到同樣的麻煩。

背景信息:我希望對多維數據集進行增量更新,但在表上沒有更新時間戳。 我現在正在研究創建一個獨立的表,當記錄更新時,該表通過觸發器使用gkey和當前日期時間戳進行更新。

我在桌面上的觸發器如下:

CREATE TRIGGER trgAfterUpdateVisitDetails ON  [visit_details]
FOR UPDATE
AS  
begin
   declare @VD_Gkey nvarchar
   declare @today DATETIME = SYSDATETIME()

   insert into [UpdatedVD]
     SELECT 
        @VD_Gkey, @today
     FROM 
        [visit_details]
End

這給了我一個類似下面的輸出,但有917行相同:

+---------+-------------------------+
| VD_Gkey |          today          |
+---------+-------------------------+
| NULL    | 2014-01-02 11:21:23.963 |
| NULL    | 2014-01-02 11:21:23.963 |
+---------+-------------------------+

我知道這將是一件非常簡單的事情,但我無法理解這一點。

任何幫助都會很棒。

謝謝。

您只需要訪問inserteddeleted偽表:

CREATE TRIGGER trgAfterUpdateVisitDetails ON  [visit_details]
FOR UPDATE
AS  
begin
    insert into 
        [UpdatedVD]
    SELECT 
        i.VD_Gkey, CURRENT_TIMESTAMP
    FROM
        inserted i;
End

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM