• 删除数据库的所有存储过程、主键、外键、索引等


    --删除存储过程
    DECLARE @STRING VARCHAR(8000)
    WHILE EXISTS(SELECT NAME FROM SYSOBJECTS WHERE TYPE='P' AND STATUS>=0)
    BEGIN
    SELECT TOP 1 @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 top 1 @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 top 1 @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 top 1 @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 top 1 @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 top 1 @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

  • 相关阅读:
    persistence_timeout ,域名请求登录后一操作即被踢出,,KeepAlive,lvs
    记录因xen而导致lvs,realserver转发activeconn为0
    html5各种页面切换效果和模态对话框
    [设计模式] javascript 之 抽象工厂模式
    jQuery源码分析-构造函数详解
    CSS3动画的回调处理
    jQuery load()方法用法集锦!
    css控制input标签
    分享22款响应式的 jQuery 图片滑块插件
    Jquery取得iframe中元素的几种方法(转载)
  • 原文地址:https://www.cnblogs.com/0000/p/1600981.html
Copyright © 2020-2023  润新知