SQL 2000 データベースで、あるテーブルから別のテーブルに行をコピーするように設計された SQL スクリプトを考えてみましょう。転送には、単純に 750,000 行が含まれます。
INSERT INTO TableB([ColA],[ColB]....[ColG])
SELECT [ColA],[ColB]....[ColG]
FROM TableA
これは、ColB
タイプが であるため、おそらく長時間実行されるクエリntext
です。ステートメントにはいくつかのCONVERT()
操作があります。SELECT
問題は、約 15 分の操作の後、SQL Server によってこの例外が発生することです。
'PRIMARY' ファイル グループがいっぱいであるため、データベース '[DB]' のオブジェクト '[TABLE]'.'[PRIMARY_KEY]' に領域を割り当てることができませんでした。不要なファイルを削除するか、ファイル グループ内のオブジェクトを削除するか、ファイル グループにファイルを追加するか、ファイル グループ内の既存のファイルに対して自動拡張を設定して、ディスク領域を作成します。
より詳しい情報
- 自動拡張はすでにオンになっています。
- ディスクに十分な空き容量があります (~20GB)
- 単一の.mdfは〜6GBです
- ソース表またはターゲット表にトリガーがない
質問
必要に応じてデータベースを拡張できるようにするには、Management Studio または T-SQL を介してどのオプションを設定する必要がありますか? 他にどのような救済策を提案しますか?
解像度
SQL Server 2008 Expressのインスタンスでこのデータベースをホストしていたため、必要に応じてデータベースを拡張できませんでした。中和されていないバージョンの SQL Server にアップグレードすると、この問題が解決します。