zoukankan      html  css  js  c++  java
  • SQL Server批量删除表,视图,存储过程等数据库元素

     1  --第一步,读取所有视图 
     2 select identity(int,1,1) flag,[name] names into #tmp 
     3 from sysobjects where crdate>'2012-07-09'  
     4 
     5         -- 执行上一步之后再执行下面:
     6 --第二步循环删除 
     7 declare @tb varchar(1000) ,@a int,@b int,@sql varchar(8000) 
     8 select @a=min(flag),@b=max(flag) from #tmp 
     9 while @a<=@b 
    10     begin 
    11         select @tb=names from #tmp where flag=@a 
    12         set @sql='drop function '+@tb 
    13         exec(@sql) 
    14         set @a=@a+1 
    15     end 
    16 --最后别忘记删除临时表
    17     DROP TABLE #tmp 
    18 select *   from sysobjects 
    19 where crdate>'2012-07-09'  
    20  

    根据需要删除的内容过滤 和更改 第12行代码

    sysobjects

      系统对象表。 保存当前数据库的对象,如约束、默认值、日志、规则、存储过程等

      sysobjects 重要字段解释:

      sysObjects (

      Name sysname, --object 名称

      id int, --object id

      xtype char(2), -- object 类型

      type char(2), -- Object 类型(与xtype 似乎一模一样? 有点郁闷…)

      uid smallint, -- object 所有者的ID

      ... --其他的字段不常用到。

      )

      注:需要解释的是 xtype 和type 是一模一样的,他的数据为:

      C = CHECK 约束

      D = 默认值或 DEFAULT 约束

      F = FOREIGN KEY 约束

      FN = 标量函数

      IF = 内嵌表函数

      K = PRIMARY KEY 或 UNIQUE 约束

      L = 日志

      P = 存储过程

      R = 规则

      RF = 复制筛选存储过程

      S = 系统表

      TF = 表函数

      TR = 触发器

      U = 用户表

      V = 视图

         X = 扩展存储过程

      该表中包含该数据库中的所有对象,如有那些表 存储过程 视图 等信息 

  • 相关阅读:
    centOS7 完整克隆后网络配置
    索引角度理解innodb/myisam原理
    JUC 7大并发容器原理详解、及使用场景
    MySQL索引列没有走索引?
    Java 各种并发锁 从 synchronized 到 CAS 和 AQS
    JDK1.8 HashMap两种扩容的情况和转红黑树
    开发自己的网上支付案例代码(易宝支付php)
    redis学习基础(二)
    redis使用基础(一)
    直角三角形打印
  • 原文地址:https://www.cnblogs.com/Qbit/p/2582623.html
Copyright © 2011-2022 走看看