zoukankan      html  css  js  c++  java
  • 删除当前数据库下面的所有用户表存储过程

    -- 删除数据库的所有表、存储过程、主键、外键、索引等
    --删除数据库中的所有表
    exec sp_msforeachtable 'drop table ?' 
    go
     --删除存储过程
    DECLARE @STRING VARCHAR(8000)
    WHILE EXISTS(SELECT NAME FROM SYSOBJECTS WHERE TYPE='P' AND STATUS>=0)
    BEGIN
    SELECT @STRING='DROP PROCEDURE '+NAME FROM SYSOBJECTS WHERE TYPE = 'P' AND STATUS>=0
    --SELECT @STRING
    EXEC(@STRING)
    END

    GO

    --默认值或 DEFAULT 约束
    DECLARE @STRING VARCHAR(8000)
    WHILE EXISTS(SELECT NAME FROM SYSOBJECTS WHERE XTYPE='D')
    BEGIN
    SELECT @STRING='ALTER TABLE '+B.NAME+' DROP CONSTRAINT '+A.NAME
    FROM (SELECT PARENT_OBJ,NAME FROM SYSOBJECTS WHERE XTYPE='D') A,
    (SELECT ID,NAME FROM SYSOBJECTS WHERE OBJECTPROPERTY(ID, N'ISUSERTABLE') = 1) B
    WHERE A.PARENT_OBJ=B.ID
    EXEC(@STRING)
    END

    GO

    --UNIQUE 约束
    DECLARE @STRING VARCHAR(8000)
    WHILE EXISTS(SELECT NAME FROM SYSOBJECTS WHERE XTYPE='UQ')
    BEGIN
    SELECT @STRING='ALTER TABLE '+B.NAME+' DROP CONSTRAINT '+A.NAME
    FROM (SELECT PARENT_OBJ,NAME FROM SYSOBJECTS WHERE XTYPE='UQ') A,
    (SELECT ID,NAME FROM SYSOBJECTS WHERE OBJECTPROPERTY(ID, N'ISUSERTABLE') = 1) B
    WHERE A.PARENT_OBJ=B.ID
    EXEC(@STRING)
    END

    GO

    --FOREIGN KEY 约束
    DECLARE @STRING VARCHAR(8000)
    WHILE EXISTS(SELECT NAME FROM SYSOBJECTS WHERE TYPE='F')
    BEGIN
    SELECT @STRING='ALTER TABLE '+B.NAME+' DROP CONSTRAINT '+A.NAME
    FROM (SELECT PARENT_OBJ,NAME FROM SYSOBJECTS WHERE TYPE='F') A,
    (SELECT ID,NAME FROM SYSOBJECTS WHERE OBJECTPROPERTY(ID, N'ISUSERTABLE') = 1) B
    WHERE A.PARENT_OBJ=B.ID
    EXEC(@STRING)
    END

    GO

    --PRIMARY KEY 约束
    DECLARE @STRING VARCHAR(8000)
    WHILE EXISTS(SELECT NAME FROM SYSOBJECTS WHERE XTYPE='PK')
    BEGIN
    SELECT @STRING='ALTER TABLE '+B.NAME+' DROP CONSTRAINT '+A.NAME
    FROM (SELECT PARENT_OBJ,NAME FROM SYSOBJECTS WHERE XTYPE='PK') A,
    (SELECT ID,NAME FROM SYSOBJECTS WHERE OBJECTPROPERTY(ID, N'ISUSERTABLE') = 1) B
    WHERE A.PARENT_OBJ=B.ID
    EXEC(@STRING)
    END

    GO

    --触发器
    DECLARE @STRING VARCHAR(8000)
    WHILE EXISTS(SELECT NAME FROM SYSOBJECTS WHERE XTYPE='TR')
    BEGIN
    SELECT @STRING='DROP TRIGGER '+NAME FROM SYSOBJECTS WHERE XTYPE='TR'
    EXEC(@STRING)
    END

    GO

    --索引
    declare @string varchar(8000)
    while exists(
    select TABLE_NAME= o.name,INDEX_NAME= x.name
    from sysobjects o, sysindexes x, syscolumns c, sysindexkeys xk
    where o.type in ('U')
    and convert(bit,(x.status & 0x800)/0x800)=0
    and x.id = o.id
    and o.id = c.id
    and o.id = xk.id
    and x.indid = xk.indid
    and c.colid = xk.colid
    and xk.keyno <= x.keycnt
    and permissions(o.id, c.name) <> 0
    and (x.status&32) = 0 -- No hypothetical indexes
    group by o.name,x.name)
    begin
    select top 1 @string='drop index '+o.name+'.'+ x.name
    from sysobjects o, sysindexes x, syscolumns c, sysindexkeys xk
    where o.type in ('U')
    and convert(bit,(x.status & 0x800)/0x800)=0
    and x.id = o.id
    and o.id = c.id
    and o.id = xk.id
    and x.indid = xk.indid
    and c.colid = xk.colid
    and xk.keyno <= x.keycnt
    and permissions(o.id, c.name) <> 0
    and (x.status&32) = 0 -- No hypothetical indexes
    group by o.name,x.name
    exec(@string)
    end
    GO


  • 相关阅读:
    OLAP ODS项目的总结 平台选型,架构确定
    ORACLE ORA12520
    ORACLE管道函数
    ORACLE RAC JDBC 配置
    ORACLE RAC OCFS连接产生的错误
    ORACLE 启动和关闭详解
    OLAP ODS项目的总结 起步阶段
    ORACLE RAC 配置更改IP
    ORACLE RAC OCR cann't Access
    ORACLE RAC Debug 之路 CRS0184错误与CRS初始化
  • 原文地址:https://www.cnblogs.com/aflyfly/p/1569465.html
Copyright © 2011-2022 走看看