当前位置:  数据库>sqlserver

删除数据库中所有存储过程、主键、外键、索引等的sql语句

    来源: 互联网  发布时间:2014-08-29

    本文导语:  本节内容: 用于删除数据库中存储过程、主键、外键、索引的sql语句。 以下sql语句,实现删除存储过程、默认值与约束、触发器、索引等,用来学习t-sql查询语句的编写,是个不错的实例。 例子:   代码示例: --删除存储过...

本节内容:
用于删除数据库中存储过程、主键、外键、索引的sql语句。

以下sql语句,实现删除存储过程、默认值与约束、触发器、索引等,用来学习t-sql查询语句的编写,是个不错的实例。

例子:
 

代码示例:

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


    
 
 

您可能感兴趣的文章:

  • oracle数据库删除数据Delete语句和Truncate语句的使用比较
  • 用PreparedStatement ps 在数据库中插入记录,但还未提交事务,此时再用Delete语句为什么删除不了用 ps刚才插入的记录,如何可以删除未这
  • 请问怎么用jsp语句删除oracle中的一条记录?
  • sql语言中delete删除命令语句详解
  • 编写把一java程序中所有的print语句都删除,帮忙分析一下思路。
  • sql2005 数据表存在与否及删除的判断语句
  • oracle数据库添加或删除一列的sql语句
  • oracle中误删除表后恢复语句(FLASHBACK)
  • MySQL中批量删除指定前缀表的sql语句
  • SQL语句删除和添加外键、主键的方法
  • 使用完ejb对象,快速释放出它占用的空间,而不删除数据库记录,是用的那条语句?
  • sql server一条语句删除表中重复记录
  • sql 存储过程批量删除数据的语句
  • 一条sql语句删除表中重复记录
  • 使用sql语句创建和删除约束示例代码
  • SQL语句实现删除ACCESS重复记录的两种方法
  • MySQL删除数据Delete与Truncate语句使用比较
  • 快速删除数据库表、视图、存储过程的sql语句
  • sqlserver 批量删除存储过程和批量修改存储过程的语句
  • SQL语句删除2条重复数据一条保留一条
  • MySQ索引操作命令总结(创建、重建、查询和删除索引命令详解)
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 动态给表添加删除字段并同时修改它的插入更新存储过程
  • SQLserver 数据库危险存储过程删除与恢复方法
  • MSSQL监控数据库的DDL操作(创建,修改,删除存储过程,创建,修改,删除表等)
  • oracle 存储过程详细介绍(创建,删除存储过程,参数传递等)
  • C++ Maps 成员 erase():删除一个元素
  • 怎么实现,动态的增加和删除input,删除时用radiobox选中,然后点删除,即可。谢谢
  • C++ MultiMaps 成员 erase():删除元素
  • 100分相送,怎么实现,动态的增加和删除input,删除时用radiobox选中,然后点删除,即可
  • C++ Double Ended Queues(双向队列) 成员 erase():删除一个元素
  • 请问:linux中的软件包安装后,怎么删除呀,直接删除吗?
  • C++ Lists(链表) 成员 erase():删除一个元素
  • jquery删除提示框(弹出是否删除对话框)
  • C++ Lists(链表) 成员 remove():从list删除元素
  • vim删除命令"d3e"为什么删除单词的数目不一致?
  • C++ Lists(链表) 成员 unique():删除list中重复的元素
  • 如何删除前面有个-的文件,我的根目录下有个文件叫 -C,请问如何删除?
  • C++ Lists(链表) 成员 pop_front():删除第一个元素
  • jquery删除提示框弹出是否删除对话框
  • C++ Priority Queues(优先队列) 成员 pop():删除第一个元素
  • GRUB的删除与逻辑驱动器存在时扩展分区的删除
  • C++ Queues(队列) 成员 pop():删除第一个元素
  • fedora 删除软件,但是不删除依赖软件
  • C++ MultiMaps 成员 clear():删除所有元素
  • linux 变量内容删除 中有关“最短数据删除”的意思
  • C++ Lists(链表) 成员 clear():删除所有元素
  • sql server 删除表1某些数据的同时自动删除表2的相关数据的sql代码




  • 特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3