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 = 扩展存储过程

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

  • 相关阅读:
    Linux系统(Centos)下安装Java环境配置步骤详述
    Linux系统(Centos)下安装nodejs并配置环境
    js中!~什么意思
    java jmap
    java jstat
    java jps
    JVM-GC日志分析
    JVM垃圾回收
    JVM垃圾回收--年轻代、年老点和持久代
    auth_basic 认证
  • 原文地址:https://www.cnblogs.com/Qbit/p/2582623.html
Copyright © 2011-2022 走看看