MSDE FunClub | 最終更新日 : 2000/10/23 | |
Microsoft Data Engine FunClub |
|
|
SQLServer7.0/MSDE 完全トレーニングテキスト(下巻) | ||
【第18章例題1から例題7】 |
[例題1]
bcp "MySampleTest..社員" out d:\test\社員.tbl -n -q -S zesusm -U simon -P petero
テーブルのデータを内部形式のままエクスポート
[例題2]
bcp "MySampleTest..社員COPY" in d:\test\社員.tbl -n -q -S zesusm -U simon -P petero BULK INSERT 挿入先テーブル名 FROM 'データファイル名' WITH ( DATAFILETYPE = 'native' ) このBUKL INSERT命令は、bcpコマンドのインポート機能と同じものをTransact-SQL言語のステートメントで 提供するものです。しかし残念ながらエクスポート機能はありません。
内部形式のファイルをテーブルにインポート
[例題3]
bcp "MySampleTest..社員COPY" in d:\test\社員.tbl -n -q -h"CHECK_CONSTRAINTS" -S zesusm -U simon -P petero BULK INSERT 挿入先テーブル名 FROM 'データファイル名' WITH ( CHECK_CONSTRAINTS , DATAFILETYPE = 'native' )
制約検査の実施
[例題4]
bcp "MySampleTest..社員COPY" in d:\test\社員.tbl -n -q -b1 -h"CHECK_CONSTRAINTS" -S zesusm -U simon -P petero -b1スイッチによって、バッチサイズが1レコード単位となります。 BULK INSERT 挿入先テーブル名 FROM 'データファイル名' WITH ( BATCHSIZE = 1 , CHECK_CONSTRAINTS , DATAFILETYPE = 'native' )
バッチサイズの指定
[例題5]
bcp "SELECT 社員コード,フリガナ, 氏名 FROM MySampleTest..社員 WHERE(社員コード BETWEEN 100 AND 200) " queryout d:\test\社員SEL.txt -c -S zesusm -U simon -P petero CREATE PROCEDURE 社員検索 @st int = 0 , @ed int = 999 AS SELECT 社員コード , フリガナ , 氏名 FROM 社員 WHERE( 社員コード BETWEEN @st AND @ed ) このようなストアドプロシージャがあるときに、 bcp "EXEC MySampleTest..社員検索 @st=100 , @ed=300" queryout d:\test\社員SEL.txt -c -S zesusm -U simon -P petero のbcpコマンドでは、社員コード100番以上300番以下のレコードを選択し、[社員コード]列、[フリガナ]列、[氏名]列の データをエクスポートします。
クエリによるエクスポート
[例題6]
[Sample.txtテキストデータファイル] 500<TAB>ヤマダ イチロウ<TAB>山田 一郎<改行> 510<TAB>ヤマダ ジロウ<TAB>山田 二郎<改行> 520<TAB>ヤマダ サブロウ<TAB>山田 三郎<改行> 530<TAB>ヤマダ シロウ<TAB>山田 四郎<改行> 540<TAB>ヤマダ ゴロウ<TAB>山田 五郎<改行> 注:<TAB> は、タブコードを表し、アスキーコード&h09です <改行>は、行の改行(CR-LF)を表し、アスキーコード&h0D-&h0Aです カナ文字は、半角カナです [bcp06.fmt] 7.0 3 1 SQLCHAR 0 10 "\t" 1 COL1 2 SQLCHAR 0 80 "\t" 2 COL2 3 SQLCHAR 0 40 "\r\n" 3 COL3 bcp "MySampleTest..社員COPY" in d:\test\Sample.txt -fd:\test\bcp06.fmt -q -S zesusm -U simon -P petero BULK INSERT 挿入先テーブル名 FROM 'データファイル名' WITH ( FORMATFILE = 'フォーマットファイル名' )
フォーマットファイルを使ったインポート処理
[例題7]
bcp "MySampleTest..社員" out d:\test\社員.tbl -q -S zesusm -U simon -P petero 7.0 15 1 SQLINT 0 4 "" 1 社員コード 2 SQLCHAR 0 80 "" 2 フリガナ 3 SQLCHAR 0 40 "" 3 氏名 4 SQLCHAR 0 20 "" 4 在籍支社 5 SQLCHAR 0 30 "" 5 部署名 6 SQLDATETIME 1 8 "" 6 誕生日 7 SQLDATETIME 1 8 "" 7 入社日 8 SQLCHAR 0 10 "" 8 自宅郵便番号 9 SQLCHAR 0 40 "" 9 自宅都道府県 10 SQLCHAR 0 60 "" 10 自宅住所1 11 SQLCHAR 0 60 "" 11 自宅住所2 12 SQLCHAR 0 24 "" 12 自宅電話番号 13 SQLCHAR 0 4 "" 13 内線 14 SQLBINARY 4 0 "" 14 写真 15 SQLCHAR 4 0 "" 15 プロフィール 上記の内容が、自動作成されたフォーマットファイル(社員.fmt) です。 このフォーマットファイルを雛型にして、目的のデータファイルに合わせて改造します。 例えば、[社員コード]列、[フリガナ]列、[氏名]列にデータをインポートするbcp06.fmtと 同じ機能となるフォーマットファイルは次のように記述できます。 7.0 15 1 SQLCHAR 0 10 "\t" 1 社員コード 2 SQLCHAR 0 80 "\t" 2 フリガナ 3 SQLCHAR 0 40 "\r\n" 3 氏名 4 SQLCHAR 0 0 "" 0 在籍支社 5 SQLCHAR 0 0 "" 0 部署名 6 SQLDATETIME 0 0 "" 0 誕生日 7 SQLDATETIME 0 0 "" 0 入社日 8 SQLCHAR 0 0 "" 0 自宅郵便番号 9 SQLCHAR 0 0 "" 0 自宅都道府県 10 SQLCHAR 0 0 "" 0 自宅住所1 11 SQLCHAR 0 0 "" 0 自宅住所2 12 SQLCHAR 0 0 "" 0 自宅電話番号 13 SQLCHAR 0 0 "" 0 内線 14 SQLBINARY 0 0 "" 0 写真 15 SQLCHAR 0 0 "" 0 プロフィール bcp "MySampleTest..社員COPY" in d:\test\Sample.txt -fd:\test\bcp07.fmt -q -S zesusm -U simon -P petero
フォーマットファイルの自動生成