博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
删除指定表的所有索引,包括主键索引,唯一索引和普通索引 ,适用于sql server 2005 ....
阅读量:6160 次
发布时间:2019-06-21

本文共 1424 字,大约阅读时间需要 4 分钟。

删除指定表的所有索引,包括主键索引,唯一索引和普通索引 ,适用于sql server 2005,

使用说明 :

1,先执行脚本,将存储过程创建在数据库中

2,调用方法,以黄金搭档数据库为例

use velcromfm --数据库名, 根据具体项目替换

go

declare @tableName varchar(20)

set @tableName='menu' --表名 ,根据实际情况替换
exec sp_dropindex @tableName

3,如有需要,该脚本稍加改写就可以做成一个删除数据库所有索引的脚本

提供一个思路 :

select * from sysobjects where xtype='u' --查除数据库里所有的表,使用游标遍历执行这个存储过程

4,该脚本有个问题,如果某个pk索引是另外一个表的外键的话就删不掉,但在velcro系统的数据库不会有这个麻烦,应为我们的系统没有设任何外键^-^

脚本如下

*/

----------------------------- 脚本---------------------------------------------------

if exists(select 1 from sysobjects where id = object_id('sp_dropindex') and xtype = 'P')
drop procedure sp_dropindex
go

create procedure sp_dropindex @tableName varchar(50)=null --表名

as

if @tableName is null

begin
 raiserror('必须提供@tableName参数',12,1)
 return
end

create table # (

 id int identity,
 index_name varchar(50),
 index_description varchar(1000),
 index_keys varchar(100)
)

insert #(index_name,index_description,index_keys)

exec sp_helpindex @tableName

declare @i int

declare @sql varchar(100)
 
set @i = 1

while @i<=(select max(id) from #)

begin
 if exists(select 1 from sysobjects A join # B on A.name=B.index_name where and A.xtype in ('PK','UQ'))
 begin
  select @sql = 'alter table '+ @tableName +' drop constraint ' + (select index_name from # where id = @i)
 end
 else
 begin
  select @sql = 'drop index '+ @tableName + '.' + (select index_name from # where )
 end
 
-- print(@sql)
    exec(@sql) 
 set @i=@i+1
end

drop table #

go

转载地址:http://vyafa.baihongyu.com/

你可能感兴趣的文章
《CLR via C#》读书笔记 之 方法
查看>>
设计模式:组合模式(Composite Pattern)
查看>>
ContentValues 和HashTable区别
查看>>
LogicalDOC 6.6.2 发布,文档管理系统
查看>>
给PowerShell脚本传递参数
查看>>
实战2——Hadoop的日志分析
查看>>
利用FIFO进行文件拷贝一例
查看>>
Ecshop安装过程中的的问题:cls_image::gd_version()和不支持JPEG
查看>>
resmgr:cpu quantum等待事件
查看>>
一个屌丝程序猿的人生(六十六)
查看>>
Java 编码 UTF-8
查看>>
SpringMVC实战(注解)
查看>>
关于静态属性和静态函数
查看>>
进程的基本属性:进程ID、父进程ID、进程组ID、会话和控制终端
查看>>
spring+jotm+ibatis+mysql实现JTA分布式事务
查看>>
MyBatis启动:MapperStatement创建
查看>>
调查问卷相关
查看>>
eclipse启动无响应,老是加载不了revert resources,或停留在Loading workbench状态
查看>>
1. Git-2.12.0-64-bit .exe下载
查看>>
怎样关闭“粘滞键”?
查看>>