首页 > 数据库技术 > 详细

SQL中删除某数据库所有trigger及sp

时间:2014-06-17 13:56:19      阅读:501      评论:0      收藏:0      [点我收藏+]

SQL中删除某数据库所有trigger及sp

 

编写人:CC阿爸

 

2014-6-14

 

在日常SQL数据库的操作中,如何快速的删除所有triggersp

以下有三种方式可快速处理。

 

 

--第一种

--事务的处理方法

Begin Transaction

Begin try

declare @SQL varchar(max)

set @SQL=‘‘

select @SQL=@SQL+name+‘,‘ from sysobjects where xtype=‘TR‘ and name<>‘DropDatabase‘

If ISNULL(@SQL,‘‘)!=‘‘

Begin

set @SQL=‘Drop Trigger ‘+LEFT(@SQL,len(@SQL)-1)

select  @SQL as aa

--exec(@SQL)

end

commit Transaction

End Try

Begin Catch

rollback tran

End Catch

 

 

--第二种方法

--采用光标的方式

 

--DECLARE cursorname cursor for select ‘drop PROCEDURE  ‘+name from sys.objects where name like ‘xx%‘ and xtype = ‘P‘ --删除对应的存储过程

DECLARE cursorname cursor for select ‘drop Trigger‘+name from sys.objects where name like ‘%‘ and type = ‘TR‘ --删除对应的触发器

open cursorname

declare @curname sysname

fetch next from cursorname into @curname

while(@@fetch_status=0)

  begin

 --exec(@curname)

 select @curname as aa

fetch next from cursorname into @curname

end

close cursorname

deallocate cursorname

 

--第三种方法

--简易办法,查询出来后,再在数据库中执行

select ‘drop Trigger ‘+name from sys.objects where name like ‘%‘ and type = ‘TR‘

select ‘drop PROCEDURE ‘+name from sys.objects where name like ‘%‘ and type = ‘P‘

SQL中删除某数据库所有trigger及sp,布布扣,bubuko.com

SQL中删除某数据库所有trigger及sp

原文:http://www.cnblogs.com/bribe/p/3791622.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!