| MSDE FunClub |
|
最終更新日 : 2000/10/23 |
|
Microsoft Data Engine FunClub
|
Since 2000.10.23
|
|
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