创建更新触发器

时间:2016-10-06 09:58:42

标签: sql

我想创建一个更新触发器,这样一旦将其值更改为false,它将使用基于EmpActive列的日期更新名为resignationdate的列。

这两列都位于名为tblEmployee的同一个表中。

由于

1 个答案:

答案 0 :(得分:0)

假设你有一个具有这种结构的表:

CREATE TABLE tblEmployee (
  resignationdate DATETIME,
  EmpActive       BIT
)

你可以这样做:

CREATE TRIGGER tblEmployeeTrig
  ON tblEmployee
FOR UPDATE AS
  BEGIN
    IF (
         SELECT EmpActive
         FROM INSERTED) = 0
      UPDATE tblEmployee
      SET resignationdate = getdate()
    --WHERE {some conditions}
  END

这是Sybase ASE语法,但我猜它接近任何其他DBMS语法。

你可以这样测试:

INSERT INTO tblEmployee VALUES (getdate(), 1)
SELECT * FROM tblEmployee

现在点开触发器:

UPDATE tblEmployee
SET EmpActive = 0