SQL Server 触发器更新列值

LdB*_*LdB 2 sql sql-server triggers

我需要一个基本的 sql 触发器示例,现在我解释一下:

我有一个有 5 列的表(列 1,功率,列 3,列 4,次)

“power”的值实时变化(Are numbers),他的数据类型是“real”,而“times”的数据类型是“int”

我会触发每次“功率”变为 0“次”增加 1

对不起,如果我的英语不完美!希望你明白我的意思!如果有什么不清楚的告诉我,我会尽量解释得更好!:)

Nik*_*vić 5

一个可能的基本触发器:

create trigger MyBasicTrigger on MyBasicTable
after insert, update
as
--  Trigger rowcount should not mess with update that triggered it, search for it in documentation provided here
   set NoCount ON
-- If power is mentioned in update/insert statement at all
   if update(Power)
   begin
   -- Update times for each changed row that has value of power 0
   -- Inserted table holds new values in updated rows
   -- You didn't mention your PK column(s), so I assume the name would be "ID"
      update MyBasicTable set Times = Times + 1
      from MyBasicTable inner join inserted on MyBasicTable.ID = inserted.ID
      where Inserted.Power = 0
   end
Run Code Online (Sandbox Code Playgroud)

NoCount 和 update(power) 的文档在这里