zoukankan      html  css  js  c++  java
  • Sql Server 删除所有表

    如果由于外键约束删除table失败,则先删除所有约束:

    --/第1步**********删除所有表的外键约束*************************/

    DECLARE c1 cursor for

    select 'alter table ['+ object_name(parent_obj) + '] drop constraint ['+name+']; '

    from sysobjects

    where xtype = 'F'

    open c1

    declare @c1 varchar(8000)

    fetch next from c1 into @c1

    while(@@fetch_status=0)

    begin

    exec(@c1)

    fetch next from c1 into @c1

    end

    close c1

    deallocate c1

    --/第2步**********删除所有表*************************/

    DECLARE c2 cursor for
        select 'drop table ['+name +']; '
        from sysobjects
        where xtype = 'u' and name like '_%'-----------建立数据库时最好加上前缀,删除的时候匹配前缀就可以了 ,匹配下划线可以删除所有表,原因未知
    open c2
    declare @c2 varchar(8000)
    fetch next from c2 into @c2
    while(@@fetch_status=0)
        begin
            exec(@c2)
            fetch next from c2 into @c2
        end
    close c2
    deallocate c2

    --删除所有的存储过程同理可得,但不需要走第一步,只需将第2步的代码的where type='U' 改成 where type='P',drop table 改成 drop Procedure。

    如删除数据库izhanshi:

    复制代码

    --/第1步**********删除所有表的外键约束*************************/
    
    DECLARE c1 cursor for
    select 'alter table ['+ object_name(parent_obj) + '] drop constraint ['+name+']; '
    from sysobjects
    where xtype = 'F'
    open c1
    declare @c1 varchar(8000)
    fetch next from c1 into @c1
    while(@@fetch_status=0)
    begin
    exec(@c1)
    fetch next from c1 into @c1
    end
    close c1
    deallocate c1
    
    --/第2步**********删除所有表*************************/
    
    use izhanshi
    GO
    declare @sql varchar(8000)
    while (select count(*) from sysobjects where type='U')>0
    begin
    SELECT @sql='drop table ' + name
    FROM sysobjects
    WHERE (type = 'U')
    ORDER BY 'drop table ' + name
    exec(@sql) 
    end

    复制代码

  • 相关阅读:

    双向链表
    obs分析 笔记
    循环链表
    静态链表
    链式顺序表
    线性表
    ffmpeg-4.1.1-win64-dev在vs2017的搭建
    G1 与 CMS 两个垃圾收集器的对比
    垃圾回收算法有几种类型? 他们对应的优缺点又是什么?
  • 原文地址:https://www.cnblogs.com/jiangxin/p/4494538.html
Copyright © 2011-2022 走看看