none
BCPユーティリティでのダミーテーブル(#付きテーブル)の有効性について RRS feed

  • 質問

  • プログラムの中でダミーテーブル(#DAMY1)にデータを溜めて処理をしているのですが、
    Shellコマンドで下記を流してもファイルが作成されません。
    bcp #DAMY1 out D:\Test\a.csv -T -c

    ダミーテーブルに対してはbcpコマンドは無効なのでしょうか?
    色々調べてみましたが、回答まで行き着かず質問させていただきました。

    よろしく御願いいたします。

    以上
    2009年9月2日 9:24

回答

  • グローバル一時テーブルならできるということみたいです。

    http://msdn.microsoft.com/ja-jp/library/ms191503.aspx
    一時テーブルからのデータのエクスポートと一時テーブルへのデータのインポート
    次に示すように、グローバルまたはローカルの一時テーブルにデータをインポートし、グローバル一時テーブルからデータをエクスポートできます。

    グローバル一時テーブル (##groupSales など)
    bcp ユーティリティ、BULK INSERT、または INSERT ... SELECT * FROM OPENROWSET(BULK...) のいずれかを使用することで、グローバル一時テーブルにデータを一括インポートできます。bcp ユーティリティを使用して、グローバル一時テーブルからデータをエクスポートすることもできます。一時テーブルは tempdb にのみ存在するため、グローバル一時テーブルを指定する場合には、データベース名は省略してください。
    ローカル一時テーブル (#mySales など)
    BULK INSERT、または INSERT ... SELECT * FROM OPENROWSET(BULK...) のいずれかのみを使用することで、ローカル一時テーブルにデータを一括インポートできます。ローカル一時テーブルは bcp ユーティリティでサポートされていないため、ローカル一時テーブルからのエクスポートまたはローカル一時テーブルへのインポートに、bcp を使用することはできません。
    2009年9月2日 10:18

すべての返信

  • グローバル一時テーブルならできるということみたいです。

    http://msdn.microsoft.com/ja-jp/library/ms191503.aspx
    一時テーブルからのデータのエクスポートと一時テーブルへのデータのインポート
    次に示すように、グローバルまたはローカルの一時テーブルにデータをインポートし、グローバル一時テーブルからデータをエクスポートできます。

    グローバル一時テーブル (##groupSales など)
    bcp ユーティリティ、BULK INSERT、または INSERT ... SELECT * FROM OPENROWSET(BULK...) のいずれかを使用することで、グローバル一時テーブルにデータを一括インポートできます。bcp ユーティリティを使用して、グローバル一時テーブルからデータをエクスポートすることもできます。一時テーブルは tempdb にのみ存在するため、グローバル一時テーブルを指定する場合には、データベース名は省略してください。
    ローカル一時テーブル (#mySales など)
    BULK INSERT、または INSERT ... SELECT * FROM OPENROWSET(BULK...) のいずれかのみを使用することで、ローカル一時テーブルにデータを一括インポートできます。ローカル一時テーブルは bcp ユーティリティでサポートされていないため、ローカル一時テーブルからのエクスポートまたはローカル一時テーブルへのインポートに、bcp を使用することはできません。
    2009年9月2日 10:18
  • ご指摘の通り対応し、目的の出力物を得ることができました。
    ありがとうございました。
    2009年9月3日 3:59