我的数据库中出现意外行为。
我正在尝试创建一个触发器,并得到它已经存在的错误:
消息 2714,级别 16,状态 2,过程 xxxx_xxxxx_INSERT,第 2 行 [批处理开始第 0 行] 数据库中已经有一个名为“xxxx_xxxxx_INSERT”的对象。
但是,我没有看到具有此名称的触发器(以下是我用来检查的查询),我也无法通过管理工作室找到它。
select a.[name] as trgname,
b.[name] as [tbname]
from sys.triggers a
join sys.tables b on a.parent_id = b.object_id
order by trgname
我还能检查什么?
命名空间令人困惑,并且在 SQL Server 中没有很好地记录。
在您的情况下,数据库中将有另一个模式范围的对象,其标识符与您希望用于触发器的标识符相同。
我的猜测是有一个同名的存储过程。
sys.objects
您可以在系统视图中检查模式范围的对象。