zoukankan      html  css  js  c++  java
  • 删除数据库中所有表

    一个数据库中可能有很多表,而我想全部删除,如果一个一个手动删除太麻烦而且浪费时间。
    涉及两个问题:1.如何知道这个数据库里有哪些表?2.如何把这些表名读取出来?
    这两个问题解决了,就方便多了。
    第一个问题:
    select name from sysobjects
    where xtype='U'

    sysobjects表
    在数据库内创建的每个对象(约束、默认值、日志、规则、存储过程等)在表中占一行。

    xtype='U'表示用户表

    第二个问题:
    可以把表名读取出来放到一个表变量中,然后再利用while 循环去drop table

       1:  declare @tabletemp TABLE (ID INT identity(1,1),NAME NVARCHAR(50));
       2:  declare @i int;
       3:  set @i=1;
       4:  declare @mx int;
       5:   
       6:  insert into @tabletemp
       7:  SELECT NAME
       8:  from sysobjects where xtype='U';
       9:   
      10:  set @mx=(select MAX(id) from @tabletemp);
      11:   
      12:  while (@i<=@mx)
      13:  begin
      14:  declare @name nvarchar(50)
      15:  select @name=name from @tabletemp where ID=@i
      16:  --truncate table @name 这样写是错误的,这样的话就需要@name是表类型变量
      17:  exec('truncate table '+@name)
      18:  exec('drop table '+@name)
      19:  set @i=@i+1
      20:  end
      21:   

    也许使用游标更方便处理

    使用游标

       1:  declare @cur cursor,@name nvarchar(50);
       2:  set @cur=cursor for select name from sysobjects where xtype='U'
       3:   
       4:  open @cur
       5:  fetch next from @cur into @name
       6:   
       7:  while @@FETCH_STATUS=0
       8:  begin
       9:  exec ('truncate table '+@name)
      10:  exec ('drop table '+@name)
      11:  fetch next from @cur into @name
      12:  end
      13:   
      14:  close @cur
      15:  deallocate @cur

    开始才网上搜到的是使用游标的方法,试着实现了。

    然后试着用其他方法实现(没想到会成功),其实就是山寨下游标的思路,感觉没游标的简单。唯一惊喜也许就是使用了表变量,之前只是看过oracle中有表变量。

    成功固然重要,但也不要刻意在乎,享受下一路上意外的得到!

  • 相关阅读:
    Node Sass version 5.0.0 is incompatible with^4.0.0
    解决vue-cli引入sass,报错:this.getResolve is not a function问题
    解决nuxt官方脚手架的一些坑:1、支持es6+语法 2、样式支持sass
    针对【create-nuxt-app新版本v3.2.0】构建项目时没有server配置以及运行后弹出收集匿名数据选项等问题的解决方法
    create-nuxt-app创建出来的目录没有server文件夹
    Redis安装(Windows环境下Redis安装)
    koa2中间件,路由,cookies
    用同步的写法来执行异步操作, async, awiat
    koa2 安装与启动
    练习:自己写一个容器ArrayList集合 一一数组综合练习
  • 原文地址:https://www.cnblogs.com/cnmarkao/p/3831746.html
Copyright © 2011-2022 走看看