T-SQL

T-SQL 知识量:16 - 67 - 243

15.2 创建触发器><

创建DML触发器- 15.2.1 -

T-SQL创建DML触发器的语法如下:

CREATE TRIGGER trigger_name  
ON table_name  
AFTER INSERT, UPDATE, DELETE  
AS  
BEGIN  
    -- Transact-SQL 语句  
END

在上述语法中,需要替换以下部分:

  • trigger_name:触发器的名称,可以根据需要自定义。

  • table_name:触发器所关联的表名。

  • INSERT, UPDATE, DELETE:指定触发器在哪些DML操作后触发,可以根据需要选择其中之一或多个。

在BEGIN和END之间的部分是触发器的主体,可以在这里编写T-SQL语句来实现逻辑。

以下是一个示例,演示如何创建一个在插入操作后触发的DML触发器:

CREATE TRIGGER trg_AfterInsert  
ON YourTable  
AFTER INSERT  
AS  
BEGIN  
    -- 在插入操作后触发器的逻辑  
    -- 例如,可以在这里添加插入操作的记录到另一个表中  
END

创建DDL触发器- 15.2.2 -

T-SQL创建DDL触发器的语法如下:

CREATE TRIGGER trigger_name  
ON ALL SERVER   
AFTER/BEFORE EVENTNAME(S) --指定触发器的事件类型,如CREATE、ALTER、DROP等  
AS  
BEGIN  
    -- Transact-SQL 语句  
END

在上述语法中,需要替换以下部分:

  • trigger_name:触发器的名称,可以根据需要自定义。

  • AFTER/BEFORE:指定触发器在事件发生之前或之后触发。

  • EVENTNAME(S):指定触发器要监视的事件类型,如CREATE、ALTER、DROP等。可以指定多个事件类型,用逗号分隔。

在BEGIN和END之间的部分是触发器的主体,可以在这里编写T-SQL语句来实现逻辑。

以下是一个示例,演示如何创建一个在创建表之后触发的DDL触发器:

CREATE TRIGGER trg_AfterTableCreate  
ON ALL SERVER   
AFTER CREATE_TABLE  
AS  
BEGIN  
    -- 在创建表之后触发器的逻辑  
    -- 例如,可以在这里备份创建的表结构到另一个数据库中  
END

创建登录触发器- 15.2.3 -

T-SQL创建登录触发器的语法如下:

CREATE TRIGGER trigger_name  
ON DATABASE  
AFTER LOGON  
AS  
BEGIN  
    -- Transact-SQL 语句  
END

在上述语法中,需要替换以下部分:

  • trigger_name:触发器的名称,可以根据需要自定义。

  • DATABASE:指定触发器是在整个数据库上创建的。

  • AFTER LOGON:指定触发器在登录事件之后触发。

在BEGIN和END之间的部分是触发器的主体,可以在这里编写T-SQL语句来实现逻辑。

以下是一个示例,演示如何创建一个在登录事件之后触发的登录触发器:

CREATE TRIGGER trg_AfterLogin  
ON DATABASE  
AFTER LOGON  
AS  
BEGIN  
    -- 在登录事件之后触发器的逻辑  
    -- 例如,可以在这里记录登录事件到日志表中  
END