如何通过触发器插入和计算值

时间:2014-05-25 15:08:51

标签: sql sql-server triggers

我的mssql Db中有2个表。

[dbo].[Jobs]([StartDate],[FinishDate],[Description],[UserId])

[dbo].[Penalties]([Cost],[Description],[UserId])

And following trigger 
CREATE TRIGGER TriggerPenalty
ON dbo.Jobs AFTER INSERT
AS
INSERT dbo.Penalties(Cost, Description, UserId)
SELECT Cost, Description, UserId
FROM dbo.Jobs

但是在我的Cost值中,我需要插入预先计算的值,该值取决于日期:cost =(如果大于10:00 AM,则从开始日期获取分钟数)* 100。而且我还需要只有在开始日期时间大于10:00 AM时才能启动我的触发器。有谁能够帮我?我是触发器的新手。

1 个答案:

答案 0 :(得分:0)

请使用"而不是触发"对于插入,它将有助于解决您的查询。下面不是运行代码,但它会让你对触发器有一个合理的了解。

enter code here

CREATE TRIGGER TriggerPenalty
  ON dbo.Jobs INSTEAD OF Insert
  AS

  declare @cost int, @Description varchar(255), @userid int

  select @cost=i.cost from inserted 
  select @Description=i.Description from inserted 
  select @Userid=i.Userid from inserted 

  if Getdate()>'Startdate'
  begin
     Process the logic

  end