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

 

编写人:CC阿爸

2014-6-14

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

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

--第一种

--事务的处理方法

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的更多相关文章

  1. SQL Server删除distribution数据库二

    以前总结过一遍博文SQL Server删除distribution数据库,里面介绍了如何删除distribution数据库.今天介绍一个删除distribution的特殊案例, 在这之前,我不知道这个 ...

  2. SQL中如何修改数据库名、表名、列名?

    文章目录 1.SQL中如何修改数据库的名字? 2.SQL中如何修改表的名字? 3.SQL中如何修改列的名字? 4.SQL中如何修改列的数据类型?(未完成,待续) 1.SQL中如何修改数据库名? 语法 ...

  3. SQL Server删除distribution数据库

    在数据库服务器删除复制(发布订阅)后,如何删除掉数据库distribution呢?如果你通过SSMS工具去删除数据库distribution,你会发现根本没有删除选项. 下面介绍一下删除distrib ...

  4. SQL Server 删除当前数据库中所有数据库 ,无视约束

    Sql Server中清空所有数据表中的记录 清空所有数据表中的记录: exec sp_msforeachtable  @Command1 ='truncate table ?' 删除所有数据表: e ...

  5. SQL中删除重复的行(重复数据),只保留一行 转

    方法一:使用在T-SQL的编程中 分配一个列号码,以COL1,COL2组合来分区排序,删除DATABASE重复的行(重复数据),只保留一行 // COL1,COL2是数据库DATABASE的栏位 de ...

  6. SQL中删除同一字段中重复的值

    /////////////////////目地:ZDJZ_DIS中 name字段有重复的值,删除重复的值 DELETE * FROM ZDJZ_DIS WHERE NAME IN (select NA ...

  7. SQL 中怎么查询数据库中具有的表、存储过程、试图数目、总触发器数、作业数

    用户表:select count(*) 总表数 from sysobjects where xtype='u' 刚才那个是用户表,下面这个是系统表加用户表: select count(*) 总表数 f ...

  8. 用SQL语句创建和删除Access数据库中的表;添加列和删除列

    用SQL语句创建和删除Access数据库中的表;添加列和删除列 Posted on 2009-08-11 13:42 yunbo 阅读(1240) 评论(0) 编辑 收藏 用SQL语句创建和删除Acc ...

  9. SQL Server中使用msdb数据库的存储过程sp_delete_backuphistory和sp_delete_database_backuphistory来删除备份和恢复历史数据

    根据微软文档对sp_delete_backuphistory存储过程的介绍,SQL Server在每次备份和恢复数据库后,会向msdb系统数据库的备份和恢复历史表写入数据,如果SQL Server经常 ...

随机推荐

  1. AndroidStudio 问题汇总

    Error:A problem occurred configuring root project 'testProject'. > Could not open cp_proj class c ...

  2. CRM PrincipalObjectAccess(POA)

    PrincipalObjectAccess (POA) table is an important table which holds all grants share on CRM objects. ...

  3. Ext.Form 自动填写表单内容

    前台: 表单必须含有name属性 if (action == 'edit' || action == 'show') { MyForm1.getForm().load({ url: '/data/cu ...

  4. IGeoDatabaseBridge2.GetLineOfSight

    IGeoDatabaseBridge2.GetLineOfSight Method Returns a line-of-site indicator interpolated from the TIN ...

  5. Codeforces 633D

    题意: 给定n,和一个长度为n的序列. 让你在这n个数中找长度尽可能长的fib数列. 思路: 这题的数字是在1e9范围内的,所以最长的可能存在的fib数列官方的解释是90左右.有一种情况除外,就是0的 ...

  6. spring获取bean的时候严格区分大小写

    如题:spring获取bean的时候严格区分大小写 配置文件helloservice.xml中配置: <dubbo:reference id="IInsurance" int ...

  7. HtmlPrefixScopeExtensions

    http://blog.stevensanderson.com/2010/01/28/editing-a-variable-length-list-aspnet-mvc-2-style/

  8. QT5.3.2在ARM上的移植

    ubuntu10.04 准备移植phonon,4.5移植失败.播放声音就出错...没办法.转移到QtMutimedia 安装交叉编译工具这里就不提了... 1.下载QT5.3.2:http://dow ...

  9. Spring配置事务 http://www.cnblogs.com/leiOOlei/p/3725911.html

    http://www.cnblogs.com/leiOOlei/p/3725911.html JNDI方式配置数据源: <?xml version="1.0" encodin ...

  10. UIView之基础控件综合事例

    九宫格算法实现及优化 2015年11月19日 星期四 23:21 1.九宫格之初实现 要求: 1.1在主界面中,点击添加按钮就能添加商品,点击删除按钮就能删除商品; 1.2在初始化界面中,添加按钮处于 ...