了解数据库触发器

时间:2016-04-25 14:52:55

标签: sql-server triggers database-cursor

我是触发器和游标的新手,想了解特定触发器的作用。这是触发器。

CREATE TRIGGER [dbo].[trg_XOnUpdate]
ON TableX
AFTER UPDATE 
AS 
BEGIN
    SET NOCOUNT ON
    DECLARE @XID INT, @XKey NVARCHAR(33)

    DECLARE updated_cursor CURSOR FOR 
        SELECT  XID, XKey 
        FROM    INSERTED 
        WHERE   XStatus 
        IN      ('AA', 'BB', 'CC')
    OPEN updated_cursor

    FETCH NEXT FROM updated_cursor INTO @XID, @XKey
    WHILE @@FETCH_STATUS = 0
    BEGIN
        EXECUTE usp_UpdateXData @XID, @XKey

        FETCH NEXT FROM updated_cursor INTO @XID, @XKey
    END

    CLOSE updated_cursor
    DEALLOCATE updated_cursor
END

1 个答案:

答案 0 :(得分:2)

了解触发器的基础
触发器是在数据库发生某种事件时执行的操作。它可以是数据或对象的更改。下面列出了不同类型的跳汰机:

触发类型

  • DML(数据操作语言)触发器(SQL Server 2000-80.0)
  • DDL(数据定义语言)触发器(SQL Server 2005-90.0)
  • SQLCLR触发器(SQL Server 2005-90.0)

触发器规则

  • 无法使用触发器创建或修改数据库对象

  • 无法执行任何管理任务

  • 无法传递任何参数

  • 无法直接调用触发器

触发器的优势
触发器对于审核数据更改或审核数据库以及管理业务规则非常有用。以下是一些例子:

  • 触发器可用于强制参照完整性(例如,您可能无法应用外键)

  • 在进行任何插入,更新或删除时,可以访问数据库中的新值和旧值

进一步深入了解触发器......
Understanding the Basic of Triggers
Understanding SQL Server inserted and deleted tables for DML triggers