如何更改索引重建整个数据库?

Mic*_*eth 7 index sql-server-2008

我想重新组织我的 SQL Server 2008 数据库中所有表的索引,名为“db”。我尝试以下命令:

ALTER INDEX all ON db REBUILD
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

找不到对象“db”,因为它不存在或您没有权限

我究竟做错了什么?

gbn*_*gbn 14

做所有表:

EXEC sp_MSForEachTable 'ALTER INDEX ALL ON ? REBUILD'
Run Code Online (Sandbox Code Playgroud)

没有像上面尝试的那样执行数据库中所有表的语句

但是,有时您不想要这个,比如只读表或大表。此外,一些表/索引几乎不会碎片化。

更智能的方法是先检查碎片,然后重建或重组。一个常见且广泛使用的示例是SQL Fool 的脚本