「SQL Azure のデータベースにテーブルを作成するときの注意点メモ」という記事があったので紹介します。
http://d.hatena.ne.jp/griefworker/20100916/sql_azure_clusterd_index
以下、上記URLから本文を引用して紹介します。
SQL Azure データベースに作成するテーブルは、クラスター化インデックスが必須です。クラスター化インデックスが無いと、データの INSERT に失敗してしまいます。
SQL Server 2008 R2 Management Studio のスクリプト生成機能を使って生成したファイルには、主キーを設定するクエリはありますが、主キー以外のインデックスを作成するクエリはありませんでした。詳細設定でインデックス作成クエリを出力するように指定してもダメ…。正しい設定の組み合わせがあるんでしょうか?
仕方ないので、Management Studio で SQL Azure のデータベースに接続し、下記の書式のクエリを発行して、クラスター化インデックスを作成しました。
CREATE CLUSTERED INDEX [インデックス名] ON [テーブル名] (
列名 ASC
)
クラスター化インデックスが無いテーブルが少なかったのが幸いでした。テーブルが多いと面倒この上ないですね。ツールの力が必要です。
Management Studio のスクリプト生成機能は助かりますが、使い方が分かりにくいのが難点です。Microsoft は開発者が利用するツールの UX にも力を入れて欲しいですね。