asp学习网: 首页 >> asp与数据库 >> sql server教程 >> 删除指定表的所有索引

删除指定表的所有索引

/*
删除指定表的所有索引,包括主键索引,唯一索引和普通索引

调用:
declare @tbName varchar(20)
set @tbName='A'
exec sp_dropindex @tbName

vivianfdlpw 2005.9 引用情保留此信息
*/
if exists(select 1 from sysobjects where id=object_id('sp_dropindex') and xtype='P')
drop procedure sp_dropindex
go
create procedure sp_dropindex
@tbName varchar(20)=null --索引名
as

if @tbName is null
begin
raiserror('必须提供@tbName参数',12,1)
return
end
/*
www.aspxuexi.com

*/

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 @tbName

declare @i int,@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 '+@tbName+' drop constraint '
+(select index_name from # where id=@i)
exec(@sql)
end
else
begin
select @sql='drop index '+@tbName+'.'
+(select index_name from # where id=@i)
exec(@sql)
end

set @i=@i+1
end

drop table #

go

from:asp学习网/title:删除指定表的所有索引/ time:2007-4-2 17:50:57

本文主题索引

应用AJAX创建搜索页面前端界面

合理使用索引

数据库索引

SQL语句索引

sql server索引和索引调整向导

Transact_SQL索引

sql:建立索引

asp教程 ©2006-2007 aspxuexi.com | 关于站点 | 版权隐私 | 站内搜索
复制或者翻版 请于夜间进行