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

本文涉及的产品
云数据库 RDS SQL Server,独享型 2核4GB
简介: 原文:删除指定表的所有索引,包括主键索引,唯一索引和普通索引 ,适用于sql server 2005, --删除指定表中所有索引 --用法:declare @tableName varchar(100) --set @tableName='表名' --表名 ,根据实际情况替换 --exe...
原文: 删除指定表的所有索引,包括主键索引,唯一索引和普通索引 ,适用于sql server 2005,

--删除指定表中所有索引
--用法:declare @tableName varchar(100) 
--set @tableName='表名' --表名 ,根据实际情况替换
--exec sp_dropindex @tableName
if exists(select 1 from sysobjects where id = object_id('dropindex') and xtype = 'P') 
drop procedure dropindex 
go

create procedure dropindex @tableName varchar(100)=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 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 
end

drop table #

go

 

先执行上面的SQL语句,然后再执行此存储过程即可

 

--删除索引
declare @tableName varchar(100) 
set @tableName='table' --表名 ,根据实际情况替换
exec dropindex @tableName
GO

 

相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS&nbsp;SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/sqlserver
目录
相关文章
|
1月前
|
SQL 存储 数据库
sql事务、视图和索引
sql事务、视图和索引
14 0
|
1月前
|
SQL 存储 弹性计算
GaussDB SQL调优:建立合适的索引
GaussDB SQL调优:建立合适的索引
12 0
|
2月前
|
SQL 索引
SQL索引小结
SQL索引小结
18 0
|
1月前
|
存储 关系型数据库 MySQL
最全MySQL面试60题(含答案):存储引擎+数据库锁+索引+SQL优化等
最全MySQL面试60题(含答案):存储引擎+数据库锁+索引+SQL优化等
178 0
|
3月前
|
SQL Oracle 关系型数据库
整合Mybatis-Plus高级,Oracle 主键Sequence,Sql 注入器实现自定义全局操作
整合Mybatis-Plus高级,Oracle 主键Sequence,Sql 注入器实现自定义全局操作
89 0
|
3月前
|
SQL 关系型数据库 MySQL
SQL提示与索引终章
SQL提示与索引终章
|
17天前
|
SQL 数据库 索引
SQL索引失效原因分析与解决方案
SQL索引失效原因分析与解决方案
22 0
|
1月前
|
SQL Java 数据库连接
com.microsoft.sqlserver.jdbc.SQLServerException: 索引 7 超出范围。
com.microsoft.sqlserver.jdbc.SQLServerException: 索引 7 超出范围。
9 0
|
1月前
|
SQL 关系型数据库 MySQL
[MySQL]SQL优化之索引的使用规则
[MySQL]SQL优化之索引的使用规则
|
1月前
|
SQL 数据库 索引
解决SQL报错:索引中丢失IN或OUT參数
解决SQL报错:索引中丢失IN或OUT參数