首页 > 解决方案 > 不支持显示触发

问题描述

我在我的桌子上创建了一个触发器。现在我想显示触发器,但在我的 SQL 上说

“节目不受支持。已跳过”。

我使用了以下查询:

SHOW TRIGGERS IN Ella

任何人都知道为什么或如何看到触发器?表名称是 Ella。

标签: sqltriggersshow

解决方案


我做了一些研究,我发现 MariaDB 有类似的东西。我创建了两个表和一个触发器:

create table Ella(first_col int);

create table Ella2(first_col int);

CREATE TRIGGER test_tr 
AFTER INSERT ON Ella 
FOR EACH ROW 
UPDATE Ella2 SET Ella2.first_col = Ella2.first_col+1;

然后这个命令起作用:

SHOW TRIGGERS WHERE `Table` = 'Ella'

这是有关此的更多信息: https ://mariadb.com/kb/en/show-triggers/

但正如 Gordon 评论的那样,如果我们不知道您使用什么数据库,那只是一个猜谜游戏......

演示

经过 OP 的几条评论后,我意识到这可能是 SQLServer OP 正在使用的。我做了一个新的演示,我使用这个查询来查找某个表的触发器:

SELECT sysobjects.*
     , OBJECT_NAME(parent_obj) AS table_name 
FROM sysobjects 
WHERE sysobjects.type = 'TR' 
and OBJECT_NAME(parent_obj) = 'Ella'

演示

如果您想查看触发器的代码,则:

SELECT *   
FROM sys.sql_modules  
where object_id = OBJECT_ID('Ella'); 

推荐阅读