2009-07-11 18 views
0

誰かがデータベースからすべてのインデックスを削除する方法を知っていますか?インデックスを削除するSQL Server 2000

+1

なぜすべてのインデックスを削除しますか? –

+1

@Mitch:私はdevのインスタンスで他のdev'ersを悩ますためにそれを行うだろう。 – Sung

答えて

3

このクエリを使用すると、あなたがそれから実行できるDROPステートメントのリストを作成します。

SELECT 
    'DROP INDEX ' + ix.name + ' ON ' + OBJECT_NAME(ID) 
FROM 
    sysindexes ix 
WHERE 
    ix.Name IS NOT null 

かなり速く、すべてのインデックスを削除する必要があります:-)

Marc

PS:ああ、申し訳ありませんが、これはSQL Server 2005以降でのみ動作することに気付きました。 SQL Server 2000では、代わりに "sysindexes"ビューを使用する必要があります...私のステートメントをそれに応じて更新しました

+0

+1私はいつもOBJECT_XXX関数を忘れています。このテーブル名に –

+0

が来ていないのですが、それは動作しません。 他のスクリプトはありますか? – KuldipMCA

+0

申し訳ありません私は問題を解決しました。私はsql2000のスクリプトをしたい それはsql2005からいくつかのdiff構文を持っているので、私は答えを得た。 – KuldipMCA

1

sysindexes tableを照会するSQLを生成します。

の線に沿っていくつかのこと:

select 'drop index ' + i.name + ' on ' + o.name 
from sysindexes i 
inner join sysobjects o on i.id = o.id 
where o.name <> i.name 

結果を実行....

関連する問題