トップ回答者
SQLServer 表領域(ファイルグループ)を指定してテーブルをコピーする方法について

質問
-
SQLServer 2005 (2008) のテーブル作成時についての質問です。
表領域(ファイルグループ)を指定してテーブルをコピーする方法はあるのでしょうか。
create table テーブル名 ~ on 表領域(ファイルグループ)
で、指定した表領域(ファイルグループ)にテーブルが作成出来るのですが、
データやカラムをコピーできません。
また
select ~ into テーブル名 from コピー元のテーブル名
ならテーブルのコピーは可能なのですが、作成するテーブルを表領域指定することは出来ないのでしょうか。
SELECT文の構文を見ると、どうやら「ON」キーワードが無いようなのですが…
回答
-
create table tb1 ... on FG1...;
とした後で、
insert into tb1 ...
とデータを別でロードするのではいかがでしょうか。
また
http://msdn.microsoft.com/ja-jp/library/ms188029.aspx
INTO句の制限としてテーブルは規定のファイルグループに作成されるので
もし意図する規定ではないファイルグループに作成するには、やはり
前もってテーブルを作成してからselect intoを使う必要があります。 -
ElanLilac-san も書かれておりますが、 Select into では、ファイルグループを指定することはできないため、ファイルグループを指定したい場合は、前もって明示的にファイルグループが指定されたテーブルを作成する必要があります。
ちなみにデータの移行は、SSIS、BCP、Bulk Insert など、様々な手法が使用できます。
尚、ファイルグループは、インデックス領域とデータ領域を分けたり、ディスクI/Oを軽減させたり、大規模データベースを部分的にバックアップしたい場合などに分けておりますが、同じテーブルのデータコピーでファイルグループを分けることは通常しないような気がします。
もしメインテーブルの月次データを、サブテーブルに蓄積するようなことを検討されているのであれば、パーティションを検討しても良いかもしれません。
※まったく関係なければ無視してください。
- 回答としてマーク 山本春海 2010年9月7日 2:21
すべての返信
-
create table tb1 ... on FG1...;
とした後で、
insert into tb1 ...
とデータを別でロードするのではいかがでしょうか。
また
http://msdn.microsoft.com/ja-jp/library/ms188029.aspx
INTO句の制限としてテーブルは規定のファイルグループに作成されるので
もし意図する規定ではないファイルグループに作成するには、やはり
前もってテーブルを作成してからselect intoを使う必要があります。 -
ElanLilac-san も書かれておりますが、 Select into では、ファイルグループを指定することはできないため、ファイルグループを指定したい場合は、前もって明示的にファイルグループが指定されたテーブルを作成する必要があります。
ちなみにデータの移行は、SSIS、BCP、Bulk Insert など、様々な手法が使用できます。
尚、ファイルグループは、インデックス領域とデータ領域を分けたり、ディスクI/Oを軽減させたり、大規模データベースを部分的にバックアップしたい場合などに分けておりますが、同じテーブルのデータコピーでファイルグループを分けることは通常しないような気がします。
もしメインテーブルの月次データを、サブテーブルに蓄積するようなことを検討されているのであれば、パーティションを検討しても良いかもしれません。
※まったく関係なければ無視してください。
- 回答としてマーク 山本春海 2010年9月7日 2:21
-
こんにちは、james0126 さん。
MSDN フォーラムのご利用ありがとうございます。オペレーターの山本です。
その後いかがでしょうか。
ElanLilac さんや、NOBTA さんからの情報はご確認されましたでしょうか。
ElanLilac さん、NOBTA さんありがとうございます。お二人からの情報は有効な情報であると思われましたので、勝手ながら私のほうで回答としてマークさせていただきました。
いただいた回答の中で、解決に役立った投稿や、参考になる情報など有効な情報には回答としてマークすることをお願いしています。
今後、同じ問題でこのスレッドを参照される方にも、有効な情報がわかりやすくなるかと思いますので、ご協力よろしくお願いいたしますね。
一旦回答としてマークさせていただきましたが、ご不明な点などあれば、ご質問を続けてくださいね。
今後とも、MSDN フォーラムをよろしくお願いいたします。それでは。
マイクロソフト株式会社 フォーラム オペレーター 山本 春海