admin
2025-12-13 13:46:20
在 SQL Server 中修改或删除触发器在这里您将学习如何在 SQL Server 中修改和删除触发器。
ALTER TRIGGER 语句用于修改现有触发器的定义,而无需更改其权限或依赖项。
语法 复制ALTER TRIGGER trigger_name
ON { Table name or view name }
[ WITH
{ FOR | AFTER | INSTEAD OF }
{ [INSERT], [UPDATE] , [DELETE] }
AS
sql_statements在上面的 ALTER TRIGGER 语句中
trigger_name 是您希望更改的触发器。ON 指定创建触发器的表或视图FOR 指示事件发生时触发器何时触发[INSERT]、[UPDATE]、[DELETE] 指定将导致触发器触发的事件列表。以下是修改 DDL 触发器的方法。
示例:修改 DDL 触发器 复制ALTER TRIGGER trgTablechanges
ON DATABASE
FOR
CREATE_TABLE,
DROP_TABLE
AS
BEGIN
SET NOCOUNT ON;
INSERT INTO TableLog
(
EventVal,
DateChanged,
ChangedBy
)
VALUES (
EVENTDATA(),
GETDATE(),
USER
);
END;删除触发器DROP TRIGGER 语句从数据库中删除一个或多个触发器。您可以通过指定以逗号分隔的触发器名称来使用 DROP TRIGGER 语句删除多个触发器。
语法 复制DROP TRIGGER [IF EXISTS] [schema_name.]trigger1, trigger2, ... ];例如,下面的 SQL 语句删除 DML 触发器 trgEmployeeUpdate。
示例:删除 DML 触发器 复制DROP TRIGGER dbo.trgEmployeeUpdate删除 DDL 或 LOGON 触发器使用 DROP TRIGGER ON 语句删除 DDL 或 LOGON 触发器。
语法:删除 DDL 或 LOGON 触发器 复制DROP TRIGGER [ IF EXISTS ] trigger_name [ ,...n ]
ON { DATABASE | ALL SERVER };例如,下面的 SQL 语句使用 ON DATABASE 选项删除 DDL 触发器 trgTablechanges,因为它是一个数据库级别的触发器。
示例:删除 DDL 触发器 复制DROP TRIGGER IF EXISTS trgTablechanges ON DATABASE;以下使用 ON ALL SERVER 选项删除 LOGON 触发器 trgLoginConnection,因为它是一个服务器级别的触发器。
示例:删除 LOGON 触发器 复制DROP TRIGGER IF EXISTS trgLoginConnection ON ALL Server;