如何在Update之后将参数中的数据插入到具有触发器的表中

时间:2018-04-22 05:14:12

标签: sql sql-server triggers

我是触发器的新手,我正在尝试一个可以让我在更新另一个表updated后将更新的原因插入到日志表中。问题是我试图让用户输入一个输入,就像它在存储过程中那样,但显然不能使用触发器。

我们说我们有桌子Users

User ID | User
--------+-------
   1      John

我想要的结果如下:

Log_ID | Reason_Change
-------+------------------------------------------
   1     John wanted to change his name to John25

这可能吗?

我在尝试:

@Reason_Change VARCHAR(500)

1 个答案:

答案 0 :(得分:0)

在SQL Server中,您可以在视图上使用instead of触发器执行此操作。这个想法如下:

  1. 创建一个视图,其中包含users中的列以及更改原因。
  2. 在视图上定义instead of触发器。这将允许insert包含更改原因。
  3. 仅使用insert s。
  4. 的视图

    然后,您可以在insert中包含原因。触发器会将所有其他列放在users中并相应地更新logs表。

    此类触发器在documentation中解释。