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

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

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'

时间: 2024-08-02 15:44:06

SQL中删除某数据库所有trigger及sp的相关文章

怎么在sql中删除基本表?

问题描述 怎么在sql中删除基本表? 怎么在sql中删除基本表?用drop table 表名 cascade时,cascade有语法错,请大神指点啊 解决方案 drop table [cascade] 解决方案二: 将已经存在的表删除: DROP TABLE 表名; 你的语法错误不知道是不是表不存在这些 drop table 表名 cascade,后面这个不应该有cascade 解决方案三: 你第一次的命令是不是想解决约束性问题,你可以参考下面的语法 drop table 表名 cascade

SQL Server删除distribution数据库二

    以前总结过一遍博文SQL Server删除distribution数据库,里面介绍了如何删除distribution数据库.今天介绍一个删除distribution的特殊案例,     在这之前,我不知道这个服务器上的Replication被如何折腾过,在SSMS管理界面的Local Publications和Local Subscriptions里面已经看不到任何关于发布.订阅相关的内容.   但是使用命令EXEC sp_helpdistpublisher会看到使用分发服务器的发布服务

SQL Server删除distribution数据库

  在数据库服务器删除复制(发布订阅)后,如何删除掉数据库distribution呢?如果你通过SSMS工具去删除数据库distribution,你会发现根本没有删除选项. 下面介绍一下删除distribution的步骤   步骤1: 查看相关订阅服务器的信息,如果还存在对应的订阅服务器,从注册的服务器中删除订阅服务器名称 exec sp_helpsubscriberinfo ; go exec sp_dropsubscriber 'SubscriberName'; go   步骤2: 查看分发

sql中获取一个数据库中的所有表的名称、一个表中所有字段的名称

1.查询数据库中的所有数据库名:  代码如下 复制代码  SELECT Name FROM Master..SysDatabases ORDER BY Name2. 查询某个数据库中所有的表名:  代码如下 复制代码  SELECT Name FROM SysObjects Where XType='U' ORDER BY Name3. 查询表结构信息  代码如下 复制代码 SELECT (case when a.colorder=1 then d.name else null end) 表名,

SQL中删除所有约束、表、视图等脚本

--删除所有约束.表.视图等SQL脚本 --############################################### --删除所有外键约束 --###############################################  代码如下 复制代码 DECLARE @SQL VARCHAR(99) DECLARE CUR_CONSTRAINT CURSOR LOCAL FOR  SELECT   'ALTER TABLE '+   CASE WHEN O.sch

在SQL中删除重复记录(多种方法)

重复|重复记录  学习sql有一段时间了,发现在我建了一个用来测试的表(没有建索引)中出现了许多的重复记录.后来总结了一些删除重复记录的方法,在Oracle中,可以通过唯一rowid实现删除重复记录:还可以建临时表来实现...这个只提到其中的几种简单实用的方法,希望可以和大家分享(以表employee为例). SQL> desc employee  Name                                      Null?    Type ------------------

SQL 中删除重复记录

在Database中可能由于某种原因如用户输入,导入数据失败等 导致了重复记录. 如果你没有用主键,约束,或来其它机制实现数据完整性,那最后总是重复记录在你的数据库中.现在让我们来看在SQL SERVER 2008中如何删除这些记录, 首先,可以模拟造一些简单重复记录:  代码如下 复制代码 Create Table dbo.Employee ([Id] int Primary KEY , [Name] varchar(50), [Age] int, [Sex] bit default 1)  

在SQL中删除重复记录的多种方法

学习sql有一段时间了,发现在我建了一个用来测试的表(没有建索引)中出现了许多的重复记录.后来总结了一些删除重复记录的方法,在Oracle中,可以通过唯一rowid实现删除重复记录:还可以建临时表来实现...这个只提到其中的几种简单实用的方法,希望可以和大家分享(以表employee为例). SQL> desc employee Name Null? Type ----------------------------------------- -------- -----------------

数据库-新手求问,sql中用户对某一视图权力撤回后,要删除该视图吗

问题描述 新手求问,sql中用户对某一视图权力撤回后,要删除该视图吗 新手求问,sql中用户对某一视图权力撤回后,要删除该视图吗.如图所示,题目是撤回杨兰所授予的权力