USP_DROPALLINDEXES_FORTABLE

Parameters

Parameter Parameter Type Mode Description
@TABLENAME nvarchar(128) IN

Definition

Copy

create procedure bbdw.USP_DROPALLINDEXES_FORTABLE(
    @TABLENAME sysname
)
as begin

    declare @INDEXNAME nvarchar(128);
    declare @DROPINDEXSQL nvarchar(max);

    declare TABLEINDEXES cursor local fast_forward for
        select NAME
        from sys.indexes I
        where 
            I.is_primary_key = 0 
            AND I.is_unique_constraint = 0  
            AND I.type not in (0, 1)
            AND I.Object_id = object_id(@TABLENAME
        order by 
            I.index_id desc;

    open TABLEINDEXES;
    fetch next from TABLEINDEXES into @INDEXNAME;

    while @@FETCH_STATUS = 0
    begin
        set @DROPINDEXSQL = N'drop index [' + @INDEXNAME + '] on ' + @TABLENAME;
        exec sp_executesql @DROPINDEXSQL;

        fetch next from TABLEINDEXES into @INDEXNAME;
    end

    close TABLEINDEXES;
    deallocate TABLEINDEXES;

end