数据库

本类阅读TOP10

·SQL语句导入导出大全
·SQL Server日期计算
·SQL语句导入导出大全
·SQL to Excel 的应用
·Oracle中password file的作用及说明
·MS SQLServer OLEDB分布式事务无法启动的一般解决方案
·sqlserver2000数据库置疑的解决方法
·一个比较实用的大数据量分页存储过程
·如何在正运行 SQL Server 7.0 的服务器之间传输登录和密码
·SQL中两台服务器间使用连接服务器

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
删除数据库的所有存储过程、主键、外键、索引等

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

--删除存储过程
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




相关文章

相关软件