UNIQUE, NON CLUSTERED
インデックスに現在4列を使用しているテーブルのインデックス。
このインデックスに別の列を追加するだけの変更スクリプトを作成したいと思います。新しい列タイプはvarchar
です。
データベースはSQL Server 2005です。
前もって感謝します。
インデックスを変更することはできません-できることは
DROP INDEX (indexname) ON (tablename)
)追加の列を含む新しいインデックスを再作成します。
CREATE UNIQUE NONCLUSTERED INDEX (indexname)
ON dbo.YourTableName(columns to include)
SQL ServerのALTER INDEX
ステートメントは、既存のインデックスの特定のプロパティ(ストレージプロパティなど)を変更するために使用できますが、インデックスを構成する列を変更することはできません。
インデックスに追加する新しい列が列のリストの最後にある場合-つまり、古いインデックスの列リストが新しいインデックスの列リストの接頭辞である場合-ソートされる行古い列は新しい列でソートされます。 Sybase SQL Serverおよびおそらく古いバージョンのMicrosoft SQL Serverでは、with sorted_data
オプションにより、行がすでにソートされていることを宣言できます。しかし、MSSQL 2008 R2では効果がないようです。オプションは受け入れられますが、黙って無視されます。いずれにせよ、このオプションはクラスター化インデックスでほとんど役に立ちました。
その他の言及with drop_existing
、これは素晴らしいサウンドですが、MSSQLのより高価なバージョン専用です。