当前位置:  数据库>sqlserver

快速删除数据库表、视图、存储过程的sql语句

    来源: 互联网  发布时间:2014-08-29

    本文导语:  方法1,使用普通的sql语句 ---删除用户表 select 'DROP TABLE '+name from sysobjects where type = 'U' ---删除视图 select 'DROP VIEW '+name from sysobjects where type = 'V'  ---删除存储过程 select 'DROP PROC '+name from sysobjects where type = 'P' 使用以上sql查...

方法1,使用普通的sql语句

---删除用户表
select 'DROP TABLE '+name from sysobjects where type = 'U'
---删除视图
select 'DROP VIEW '+name from sysobjects where type = 'V' 
---删除存储过程
select 'DROP PROC '+name from sysobjects where type = 'P'

使用以上sql查询出相关的表、视图与存储过程,然后分别删除即可。

方法2,直接使用游标执行

代码示例:
DECLARE @Tb_Name varchar(30)    --定义游标操作  
DECLARE staff_cursor CURSOR FOR  
    SELECT [name] FROM sys.sysobjects  
    WHERE type='U'    
-- 打开游标  
OPEN staff_cursor   
-- 提取记录数据  
FETCH Next FROM staff_cursor Into @Tb_Name  
    WHILE @@fetch_status = 0  
    BEGIN  
        EXEC('DROP TABLE '  + @Tb_Name )  
        PRINT @Tb_Name  
        FETCH Next FROM staff_cursor Into @Tb_Name  
    END  
CLOSE staff_cursor       -- 关闭游标  
DEALLOCATE staff_cursor  -- 释放游标资源 
 
---删除存储过程-www. 
DECLARE @Sp_Name varchar(30)    --定义游标操作  
DECLARE @Tb_Count int  
SET @Tb_Count = 0  
DECLARE staff_cursor CURSOR FOR  
    SELECT [name] FROM sys.sysobjects  
    WHERE type='p' AND Category =0 --Category =0 表示  
-- 打开游标  
OPEN staff_cursor   
-- 提取记录数据  
FETCH Next FROM staff_cursor Into @Sp_Name  
    PRINT '开始删除存储过程'  
    WHILE @@fetch_status = 0   
    BEGIN  
        SET @Tb_Count = @Tb_Count + 1  
        EXEC('DROP PROCEDURE '  + @Sp_Name )  
        PRINT CONVERT(varchar(20),@Tb_Count) + ': ' + @Sp_Name  
        FETCH Next FROM staff_cursor Into @Sp_Name  
    END  
    print '总共删除' +   CONVERT(varchar(20),@Tb_Count) + '个存储过程'  
CLOSE staff_cursor       -- 关闭游标  
DEALLOCATE staff_cursor  -- 释放游标资源

使用游标,确实强悍,但性能上会有所损失,这个如何选择,大家自行把握吧。


    
 
 

您可能感兴趣的文章:

  • 用SQL语句操作数据库的例子(添加 删除 修改 字段 视图等)
  • oracle数据库删除数据Delete语句和Truncate语句的使用比较
  • 用PreparedStatement ps 在数据库中插入记录,但还未提交事务,此时再用Delete语句为什么删除不了用 ps刚才插入的记录,如何可以删除未这
  • 请问怎么用jsp语句删除oracle中的一条记录?
  • sql语言中delete删除命令语句详解
  • 编写把一java程序中所有的print语句都删除,帮忙分析一下思路。
  • sql2005 数据表存在与否及删除的判断语句
  • oracle数据库添加或删除一列的sql语句
  • oracle中误删除表后恢复语句(FLASHBACK)
  • MySQL中批量删除指定前缀表的sql语句
  • SQL语句删除和添加外键、主键的方法
  • 使用完ejb对象,快速释放出它占用的空间,而不删除数据库记录,是用的那条语句?
  • sql server一条语句删除表中重复记录
  • sql 存储过程批量删除数据的语句
  • 一条sql语句删除表中重复记录
  • 使用sql语句创建和删除约束示例代码
  • SQL语句实现删除ACCESS重复记录的两种方法
  • MySQL删除数据Delete与Truncate语句使用比较
  • sqlserver 批量删除存储过程和批量修改存储过程的语句
  • SQL语句删除2条重复数据一条保留一条
  • 使用T-SQL语句创建、修改、删除数据库
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 动态给表添加删除字段并同时修改它的插入更新存储过程
  • 删除数据库中所有存储过程、主键、外键、索引等的sql语句
  • SQLserver 数据库危险存储过程删除与恢复方法
  • MSSQL监控数据库的DDL操作(创建,修改,删除存储过程,创建,修改,删除表等)
  • oracle 存储过程详细介绍(创建,删除存储过程,参数传递等)
  • C++ Maps 成员 erase():删除一个元素
  • 怎么实现,动态的增加和删除input,删除时用radiobox选中,然后点删除,即可。谢谢
  • C++ MultiMaps 成员 erase():删除元素
  • 100分相送,怎么实现,动态的增加和删除input,删除时用radiobox选中,然后点删除,即可
  • C++ Double Ended Queues(双向队列) 成员 erase():删除一个元素
  • 请问:linux中的软件包安装后,怎么删除呀,直接删除吗?
  • C++ Lists(链表) 成员 erase():删除一个元素
  • jquery删除提示框(弹出是否删除对话框)
  • c/c++开源软件 iis7站长之家
  • vim删除命令"d3e"为什么删除单词的数目不一致?
  • C++ Lists(链表) 成员 unique():删除list中重复的元素
  • 如何删除前面有个-的文件,我的根目录下有个文件叫 -C,请问如何删除?
  • C++ Lists(链表) 成员 pop_front():删除第一个元素
  • jquery删除提示框弹出是否删除对话框
  • C++ Priority Queues(优先队列) 成员 pop():删除第一个元素
  • GRUB的删除与逻辑驱动器存在时扩展分区的删除
  • C++ Queues(队列) 成员 pop():删除第一个元素
  • fedora 删除软件,但是不删除依赖软件
  • C++ MultiMaps 成员 clear():删除所有元素
  • linux 变量内容删除 中有关“最短数据删除”的意思
  • C++ Lists(链表) 成员 clear():删除所有元素
  • sql server 删除表1某些数据的同时自动删除表2的相关数据的sql代码


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3