2016-04-12 3 views
-3

私はこの質問のロジックに混乱しています。私の教授はこれに関する何も教えてくれませんでした。誰かがそれを私に説明することができます。これは私の恐ろしい例です。 >私は確かに挿入された情報と格納された値を 固定する必要があります。ロジックに混乱しているSQL(ログトリガー)

作成サービスのCostPerHourに対する変更を記録するTR_5というトリガを作成します。 CostPerHourに変更が加えられたら、CostPerHourLogテーブルにレコードを追加します(下記参照)。ただし、CostPerHourの値が変更されていない場合は変更を記録しないでください!トリガーを作成し、テーブルを作成するコードを表示します。すべての表属性は必須です。

Create Table CostPerHourLog 
    (
    LogID [int]Identity(1,1) NOT NULL, 
    ChangeDateTime smalldatetime, 
    ServiceCode varchar(15), 
    Description varchar(100), 
    OldCostPerHour smallmoney, 
    NewCostPerHour smallmoney 
) 
    Drop trigger TR_5 

    go 
    Create trigger TR_5 
    on CostPerHour 
    for update 
    as 
    if @@rowcount<0 
    begin 
    if not exists (select * from costperhourlog) 
    insert into CostperHourLog 
    (LogID,ChangeDateTime,ServiceCode,Description,OldCostPerHour,NewCostPerHour) 
    Values 
    (LogID,ChangeDateTime,ServiceCode,Description,OldCostPerHour,NewCostPerHour) 
    end 
return 
+0

正確に何をするトリングていますか? – java

+0

私は自分のトリガーに新しい情報を記録しようとしています...私は値を挿入して保存する方法を信じています....これは質問です\\ TR_5というトリガを作成して、サービスのCostPerHourに対する変更を記録します。 CostPerHourに変更が加えられたら、CostPerHourLogテーブルにレコードを追加します(下記参照)。ただし、CostPerHourの値が変更されていない場合は変更を記録しないでください!トリガーを作成し、テーブルを作成するコードを表示します。すべての表属性は必須です。 質問を編集して読みやすくしてください – Lost

+0

BOLのトリガーについてお読みください。あなたは間違いなく失われています:) – Raj

答えて

0
ALTER TRIGGER TR_5 
    ON CostPerHour 
    AFTER UPDATE 
AS 
BEGIN 
    SET NOCOUNT ON; 
    if exists(select * from inserted except select * from deleted) 
    begin 
     insert into CostPerHourLog   
    end 

END 
GO 
関連する問題