SQL Server 批量 删除表索引

当旧的数据库中的数据几乎很少使用到的时候,索引又占用着较大的磁盘空间,数据又不能删除,又想节省磁盘空间。

这个时候可以将所有表的索引进行删除了(先创建索引备份脚本,以备需要还原),可以批量一起删除。

参考脚本如下:

--查看数据库磁盘使用情况储存过程:
EXEC sp_spaceused

--生成所有表索引删除脚本(不包含主键索引)
SELECT
    ('drop index ' + idx.name + ' on ' + OBJECT_NAME(CAST(idx.object_id AS INT)) + ';') AS dropIndexScript
FROM sys.tables tb
    INNER JOIN sys.indexes idx ON idx.object_id = tb.object_id
WHERE tb.type = 'u'
      AND idx.is_unique = 0
      AND idx.name IS NOT NULL

通过生成的删除索引脚本,执行即可,不过执行的时候,确保正常,别删错,操作前一定要小心,操作前一定要小心,操作前一定要小心。。

原文地址:https://www.cnblogs.com/cnHeng/p/11492034.html