刪除指定表的所有索引

2021-08-22 01:41:46 字數 1342 閱讀 8646

刪除指定表的所有索引 /*

刪除指定表的所有索引,包括主鍵索引,唯一索引和普通索引

呼叫: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

gocreate procedure sp_dropindex

@tbname varchar(20)=null --索引名

asif @tbname is null

begin

raiserror('必須提供@tbname引數',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 @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)

endelse

begin

select @sql='drop index '+@tbname+'.'

+(select index_name from # where id=@i

)exec(@sql)

endset @i=@i+1

enddrop table #

go

刪除指定表的所有索引

刪除指定表的所有索引,包括主鍵索引,唯一索引和普通索引 呼叫 declare tbname varchar 20 set tbname a exec sp dropindex tbname vivianfdlpw 2005.9 引用情保留此資訊 if exists select 1 from sys...

刪除指定表的所有索引

刪除指定表的所有索引 刪除指定表的所有索引,包括主鍵索引,唯一索引和普通索引 呼叫 declare tbname varchar 20 set tbname a exec sp dropindex tbname vivianfdlpw 2005.9 引用情保留此資訊 if exists select...

oracle刪除指定使用者所有表

1 select drop table table name from all tables where owner 要刪除的使用者名稱 注意要大寫 2 刪除所有表 以使用者test為例 for example declare cursor cur1 is select table name fro...