批量删除Sql Server对象(表,存储过程,触发器)

来源:未知 责任编辑:责任编辑 发表时间:2015-09-16 20:04 点击:

批量删除Sql Server对象(表,存储过程,触发器)
 
先在系统表中找到要处理的表名或者是存储过程的名字,在用游标对其进行处理
PS:SqlServer 2000使用的是系统表是sysobjects,类型字段是:xtype; SqlServer 2005以上版本的系统表是Sys.Objects,类型字段是Type
本文中以Sql2005为例,Sql2000版本请自行按照上述说明进行替换
 
注意  sys.objects 中type的值不同 删除命令是不同的
如删除存储过程用drop PROCEDURE PROCEDURENAME 删除表用 drop table  tablename 删除触发器用Drop Trigger TriggerName  www.2cto.com  
sys.objects.type的值表示的意思如下表:
C:检查约束。 
D:默认的约束 
F:外键约束 
L:日志 
P:存储过程 
PK:主键约束 
RF:复制过滤存储过程 
S:系统表格 
TR:触发器 
U:用于表格。 
UQ:独特的约束。
批量处理的代码如下:
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 'xx%' and xtype = 'tr' --删除对应的触发器
open cursorname
declare @curname sysname
fetch next from cursorname into @curname
while(@@fetch_status=0)
  begin  www.2cto.com  
 exec(@curname)
fetch next from cursorname into @curname
end
close cursorname
deallocate cursorname 
 
 
 
作者 独孤青
    发表评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    用户名: 验证码:点击我更换图片
    最新评论 更多>>

    推荐热点

    • sql常见面试题
    • SQL SERVER 2005性能之跟踪
    • LINUX上RMAN自动备份脚本
    • sql server 列转行
    • SQL SERVER2008日常自动化备份
    • SQL Server 2005 镜像构建手册
    • SQL编程(一)
    • 如何将多个SQL查询统计结果一次显示出来
    • 浅谈SQL Server中的事务日志(三)----在简单恢复模式下日志的角色
    网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
    Copyright © 2008-2015 计算机技术学习交流网. 版权所有

    豫ICP备11007008号-1