ms-sql如何删除触发器?

时间:2021-01-08 02:00:27
我创建了一个触发器
create trigger newTrigger_GasOutputTenMinsData 
on MonitorOperationData.GasOutputTenMinsData
for insert...
然后想删除
drop trigger newTrigger_GasOutputTenMinsData 
提示: 消息 3701,级别 11,状态 5,第 1 行
无法对 触发器'newTrigger_GasOutputTenMinsData' 执行 删除,因为它不存在,或者您没有所需的权限。

如何处理?(触发器肯定有,如何设置权限我用的sa用户)

27 个解决方案

#1


SA不可能删不了吧,打SP_HELP newTrigger_GasOutputTenMinsData 看看有没有这个触发器

#3


肯定用,你用SA用户登录再删除试试

#4


引用 1 楼 guguda2008 的回复:
SA不可能删不了吧,打SP_HELP newTrigger_GasOutputTenMinsData 看看有没有这个触发器

消息 15009,级别 16,状态 1,过程 sp_help,第 66 行
对象 'newTrigger_GasOutputTenMinsData' 在数据库 'AutoMonitorDB' 中不存在或对于此操作无效。

肯定有触发器,在对象资源管理器中可以看到,也可以删除,就是用语句不行

#5


引用 1 楼 guguda2008 的回复:
SA不可能删不了吧,打SP_HELP newTrigger_GasOutputTenMinsData 看看有没有这个触发器

不可能吧

#6


引用 4 楼 xiaoyanwei2000 的回复:
引用 1 楼 guguda2008 的回复:
 SA不可能删不了吧,打SP_HELP newTrigger_GasOutputTenMinsData 看看有没有这个触发器

消息 15009,级别 16,状态 1,过程 sp_help,第 66 行
 对象 'newTrigger_GasOutputTenMinsData' 在数据库 'AutoMonitorDB' 中不存在或对于此操作无效。
 肯定有触发器,在对象资源管理器中可以看到,也可以删除,就是用语句不行


请问你当前数据库是否是存在该触发器所在的数据库?

#7


引用 6 楼 vivian_lanlan 的回复:
引用 4 楼 xiaoyanwei2000 的回复:
引用 1 楼 guguda2008 的回复:
SA不可能删不了吧,打SP_HELP newTrigger_GasOutputTenMinsData 看看有没有这个触发器

消息 15009,级别 16,状态 1,过程 sp_help,第 66 行
对象 'newTrigger_GasOutputTenMinsData' 在数据库 'AutoMonitorDB' 中不存在或对于此操作无效。
肯定有触发器,在对象资源管理器中可以看到,也可以删除,就是用语句不行



请问你当前数据库是否是存在该触发器所在的数据库?
同一个数据库

#8


在安全性-登录名-sa属性中,服务器角色是public,sysadmin,但是删不掉trigger

#9


if object_id('newTrigger_GasOutputTenMinsData') is null
    select 'aa'
else
    select 'bb'

--显示什么?

#10


引用 4 楼 xiaoyanwei2000 的回复:
引用 1 楼 guguda2008 的回复:
 SA不可能删不了吧,打SP_HELP newTrigger_GasOutputTenMinsData 看看有没有这个触发器

消息 15009,级别 16,状态 1,过程 sp_help,第 66 行
 对象 'newTrigger_GasOutputTenMinsData' 在数据库 'AutoMonitorDB' 中不存在或对于此操作无效。
 肯定有触发器,在对象资源管理器中可以看到,也可以删除,就是用语句不行

那你打开事件探查器看看你用对象资源管理器删除的时候后台执行什么语句,然后复制一下运行看看

#11


引用 9 楼 vivian_lanlan 的回复:
SQL codeifobject_id('newTrigger_GasOutputTenMinsData')isnullselect'aa'elseselect'bb'--显示什么?

aa

#12


说明没有,可是资源管理器可以看到

#13


你确定这个名字没拼错是吧

#14


会不会是选错数据库了,触发器在1这个数据库的,你跑到2那里去删除了???????????

#15


[img=http://hi.csdn.net/space-215536-do-album-picid-452103.html][/img]

#16


名字不会有错的 ms-sql如何删除触发器?

#17


贴个图片给大家看看

#18


是有语句的,如果不能删除说明表有约束关系。

#19


我用sa登陆,连接服务器上的数据库,sql2005express

#20


引用 11 楼 xiaoyanwei2000 的回复:
引用 9 楼 vivian_lanlan 的回复:
SQL codeifobject_id('newTrigger_GasOutputTenMinsData')isnullselect'aa'elseselect'bb'--显示什么?

aa


这不是说明你数据库里根本就滑这个触发器的?

你怎么能删除的了啊

#21


引用 18 楼 lrjt1980 的回复:
是有语句的,如果不能删除说明表有约束关系。

是有约束关系的,不过也应该能删除吧?(不太确定)

#22


引用 20 楼 lgxyz 的回复:
引用 11 楼 xiaoyanwei2000 的回复:
引用 9 楼 vivian_lanlan 的回复:
SQL codeifobject_id('newTrigger_GasOutputTenMinsData')isnullselect'aa'elseselect'bb'--显示什么?

aa


这不是说明你数据库里根本就滑这个触发器的?

你怎么能删除的了啊
那图片又说明了什么

#23


引用 19 楼 xiaoyanwei2000 的回复:
我用sa登陆,连接服务器上的数据库,sql2005express


你连接服务器上的数据库,想用本地的sa 删除别人电脑里的东西,怎么可能删掉呢?

#24


引用 20 楼 lgxyz 的回复:
引用 11 楼 xiaoyanwei2000 的回复:
引用 9 楼 vivian_lanlan 的回复:
SQL codeifobject_id('newTrigger_GasOutputTenMinsData')isnullselect'aa'elseselect'bb'--显示什么?

aa


这不是说明你数据库里根本就滑这个触发器的?

你怎么能删除的了啊

而且我又向表中插入一条数据,触发器起作用了,它向另一张表更新了时间

#25


引用 23 楼 hero__stone 的回复:
引用 19 楼 xiaoyanwei2000 的回复:
我用sa登陆,连接服务器上的数据库,sql2005express


你连接服务器上的数据库,想用本地的sa 删除别人电脑里的东西,怎么可能删掉呢?

我连接我同事pc上的数据库,可是在他pc上用sa登陆也删不掉,提示和我的一样

#26


问题解决
原因是没有加架构前缀
这是自动生成呢过的sql
IF  EXISTS (SELECT * FROM sys.triggers WHERE object_id = OBJECT_ID(N'[MonitorOperationData].[newTrigger_GasOutputTenMinsData]'))
DROP TRIGGER  [MonitorOperationData].[newTrigger_GasOutputTenMinsData]
感谢大家的帮助

#27


学习了,哈哈 触发器的删除个创建不影响其他的东西吧

#1


SA不可能删不了吧,打SP_HELP newTrigger_GasOutputTenMinsData 看看有没有这个触发器

#2


#3


肯定用,你用SA用户登录再删除试试

#4


引用 1 楼 guguda2008 的回复:
SA不可能删不了吧,打SP_HELP newTrigger_GasOutputTenMinsData 看看有没有这个触发器

消息 15009,级别 16,状态 1,过程 sp_help,第 66 行
对象 'newTrigger_GasOutputTenMinsData' 在数据库 'AutoMonitorDB' 中不存在或对于此操作无效。

肯定有触发器,在对象资源管理器中可以看到,也可以删除,就是用语句不行

#5


引用 1 楼 guguda2008 的回复:
SA不可能删不了吧,打SP_HELP newTrigger_GasOutputTenMinsData 看看有没有这个触发器

不可能吧

#6


引用 4 楼 xiaoyanwei2000 的回复:
引用 1 楼 guguda2008 的回复:
 SA不可能删不了吧,打SP_HELP newTrigger_GasOutputTenMinsData 看看有没有这个触发器

消息 15009,级别 16,状态 1,过程 sp_help,第 66 行
 对象 'newTrigger_GasOutputTenMinsData' 在数据库 'AutoMonitorDB' 中不存在或对于此操作无效。
 肯定有触发器,在对象资源管理器中可以看到,也可以删除,就是用语句不行


请问你当前数据库是否是存在该触发器所在的数据库?

#7


引用 6 楼 vivian_lanlan 的回复:
引用 4 楼 xiaoyanwei2000 的回复:
引用 1 楼 guguda2008 的回复:
SA不可能删不了吧,打SP_HELP newTrigger_GasOutputTenMinsData 看看有没有这个触发器

消息 15009,级别 16,状态 1,过程 sp_help,第 66 行
对象 'newTrigger_GasOutputTenMinsData' 在数据库 'AutoMonitorDB' 中不存在或对于此操作无效。
肯定有触发器,在对象资源管理器中可以看到,也可以删除,就是用语句不行



请问你当前数据库是否是存在该触发器所在的数据库?
同一个数据库

#8


在安全性-登录名-sa属性中,服务器角色是public,sysadmin,但是删不掉trigger

#9


if object_id('newTrigger_GasOutputTenMinsData') is null
    select 'aa'
else
    select 'bb'

--显示什么?

#10


引用 4 楼 xiaoyanwei2000 的回复:
引用 1 楼 guguda2008 的回复:
 SA不可能删不了吧,打SP_HELP newTrigger_GasOutputTenMinsData 看看有没有这个触发器

消息 15009,级别 16,状态 1,过程 sp_help,第 66 行
 对象 'newTrigger_GasOutputTenMinsData' 在数据库 'AutoMonitorDB' 中不存在或对于此操作无效。
 肯定有触发器,在对象资源管理器中可以看到,也可以删除,就是用语句不行

那你打开事件探查器看看你用对象资源管理器删除的时候后台执行什么语句,然后复制一下运行看看

#11


引用 9 楼 vivian_lanlan 的回复:
SQL codeifobject_id('newTrigger_GasOutputTenMinsData')isnullselect'aa'elseselect'bb'--显示什么?

aa

#12


说明没有,可是资源管理器可以看到

#13


你确定这个名字没拼错是吧

#14


会不会是选错数据库了,触发器在1这个数据库的,你跑到2那里去删除了???????????

#15


[img=http://hi.csdn.net/space-215536-do-album-picid-452103.html][/img]

#16


名字不会有错的 ms-sql如何删除触发器?

#17


贴个图片给大家看看

#18


是有语句的,如果不能删除说明表有约束关系。

#19


我用sa登陆,连接服务器上的数据库,sql2005express

#20


引用 11 楼 xiaoyanwei2000 的回复:
引用 9 楼 vivian_lanlan 的回复:
SQL codeifobject_id('newTrigger_GasOutputTenMinsData')isnullselect'aa'elseselect'bb'--显示什么?

aa


这不是说明你数据库里根本就滑这个触发器的?

你怎么能删除的了啊

#21


引用 18 楼 lrjt1980 的回复:
是有语句的,如果不能删除说明表有约束关系。

是有约束关系的,不过也应该能删除吧?(不太确定)

#22


引用 20 楼 lgxyz 的回复:
引用 11 楼 xiaoyanwei2000 的回复:
引用 9 楼 vivian_lanlan 的回复:
SQL codeifobject_id('newTrigger_GasOutputTenMinsData')isnullselect'aa'elseselect'bb'--显示什么?

aa


这不是说明你数据库里根本就滑这个触发器的?

你怎么能删除的了啊
那图片又说明了什么

#23


引用 19 楼 xiaoyanwei2000 的回复:
我用sa登陆,连接服务器上的数据库,sql2005express


你连接服务器上的数据库,想用本地的sa 删除别人电脑里的东西,怎么可能删掉呢?

#24


引用 20 楼 lgxyz 的回复:
引用 11 楼 xiaoyanwei2000 的回复:
引用 9 楼 vivian_lanlan 的回复:
SQL codeifobject_id('newTrigger_GasOutputTenMinsData')isnullselect'aa'elseselect'bb'--显示什么?

aa


这不是说明你数据库里根本就滑这个触发器的?

你怎么能删除的了啊

而且我又向表中插入一条数据,触发器起作用了,它向另一张表更新了时间

#25


引用 23 楼 hero__stone 的回复:
引用 19 楼 xiaoyanwei2000 的回复:
我用sa登陆,连接服务器上的数据库,sql2005express


你连接服务器上的数据库,想用本地的sa 删除别人电脑里的东西,怎么可能删掉呢?

我连接我同事pc上的数据库,可是在他pc上用sa登陆也删不掉,提示和我的一样

#26


问题解决
原因是没有加架构前缀
这是自动生成呢过的sql
IF  EXISTS (SELECT * FROM sys.triggers WHERE object_id = OBJECT_ID(N'[MonitorOperationData].[newTrigger_GasOutputTenMinsData]'))
DROP TRIGGER  [MonitorOperationData].[newTrigger_GasOutputTenMinsData]
感谢大家的帮助

#27


学习了,哈哈 触发器的删除个创建不影响其他的东西吧