- PR -

SQL Serverでテーブルデータのエクスポート結果をバイナリ出力する方法

1
投稿者投稿内容
sand
大ベテラン
会議室デビュー日: 2007/01/15
投稿数: 247
投稿日時: 2007-10-13 13:49
SQL Serverでテーブルデータのバックアップを取りたいと思っています。
エクスポートする際、csv出力するとインポート時に切り捨てエラーになったり、データにカンマが入っていた場合等に問題となります。
Access形式でもダメなのでやはりSQL Serverが認識できるバイナリ形式で出力したいと考えています。
DBのデタッチだとファイルサイズが大きすぎるので単一のテーブルのデータだけバイナリ形式で出力したいと考えています。
よろしくお願いいたします。

#使用バージョンはSQL Server2005です。
出力されたバイナリファイルにはテーブル定義情報が含まれていてもかまいません。
みなやん
会議室デビュー日: 2004/03/30
投稿数: 11
お住まい・勤務地: 東京都中野区
投稿日時: 2007-10-14 16:33
BCPコマンドを使えばできます。

以下、サンプルです。
例)コマンドプロンプトでBCPコマンドを実行
 )sampledbのsampletbテーブルを
 )ネイティブデータ形式(バイナリ形式)で
 )f:\sample.tblへエクスポート
bcp sampledb.dbo.sampletb out f:\sample.tbl -n -T

BCPコマンドについては、以下を参照ください。
http://msdn2.microsoft.com/ja-jp/library/ms162802.aspx
sand
大ベテラン
会議室デビュー日: 2007/01/15
投稿数: 247
投稿日時: 2007-10-16 19:34
GUIからはできませんか?
みなやん
会議室デビュー日: 2004/03/30
投稿数: 11
お住まい・勤務地: 東京都中野区
投稿日時: 2007-10-16 21:14
GUIとおっしゃっているのは、
SQL Server Management Studio上でウィザードを使ってとのことでしょうか?
ウィザードでもテーブルのエクスポートはできますが、CSV形式のみの出力となります。

やはり、ネイティブデータ形式(バイナリ形式)でのエクスポートとなりますと
BCPコマンドしかありません。

話がそれますが・・・
バックアップについての確認です。
決まった曜日・時間に行うのでしょうか?
定期的にやるのでしたら、SQLジョブを使うといいと思います。
エクスポートするテーブルの数が多いようでしたら、
バッチを用意して、SQLジョブからキックする手もあります。
1

スキルアップ/キャリアアップ(JOB@IT)