首页 > 代码库 > 删除指定表的所有索引,包括主键索引,唯一索引和普通索引 ,适用于sql server 2005,
删除指定表的所有索引,包括主键索引,唯一索引和普通索引 ,适用于sql server 2005,
原文:删除指定表的所有索引,包括主键索引,唯一索引和普通索引 ,适用于sql server 2005,
--删除指定表中所有索引--用法:declare @tableName varchar(100) --set @tableName=‘表名‘ --表名 ,根据实际情况替换--exec sp_dropindex @tableNameif exists(select 1 from sysobjects where id = object_id(‘dropindex‘) and xtype = ‘P‘) drop procedure dropindex gocreate procedure dropindex @tableName varchar(100)=null --表名asif @tableName is null begin raiserror(‘必须提供@tableName参数‘,12,1) return endcreate 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 @tableNamedeclare @i intdeclare @sql varchar(100) set @i = 1while @i<=(select max(id) from #) begin if exists(select 1 from sysobjects A join # B on A.name=B.index_name where B.id=@i 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 id=@i) end -- print(@sql) exec(@sql) set @i=@i+1 enddrop table #go
先执行上面的SQL语句,然后再执行此存储过程即可
--删除索引declare @tableName varchar(100) set @tableName=‘table‘ --表名 ,根据实际情况替换exec dropindex @tableNameGO
删除指定表的所有索引,包括主键索引,唯一索引和普通索引 ,适用于sql server 2005,
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。