Date: Sun, 4 Feb 2001 16:45:42 +0900
From: "Akira Horikawa" <who@example.ne.jp>
堀川です、こんにちは
-----Original Message-----
From: Erika Yamada [mailto:who@example.co.jp]
Sent: Thursday, February 01, 2001 6:05 PM
To: who@example.ne.jp
Subject: [ml-msde:00419] 引き続き bcpの質問ですが・・・
>前回に引き続きの質問で恐縮ですが・・・。
恐縮と言われても、正解をずばりお話したらbcpコマンドの
勉強にはなりませんので、正解を導くためのヒントを教えます。
bcpコマンドは、内部形式ファイルのデータをテーブルにインポート
する機能だけではなく、既存のテーブルのレコードを内部形式ファイル
でエクスポートする機能もあります。
yamada さんが直面している問題を解決するためには、簡単なテーブル
を作成してデータを代入し、内部形式でエクスポート(出力)して、その
得られたファイルをバイナリエディタ等で16進数形式でダンプ表示すると
よくわかります。
例えば、
CREATE TABLE TEST (
ID INT PRIMARY KEY,
DAT1 INT ,
DAT2 INT
)
のような簡単なテーブルを作成して、
INSERT INTO TEST VALUES( 1,1,1 )
INSERT INTO TEST VALUES( 2,2,2 )
INSERT INTO TEST VALUES( 3,null,3 );
INSERT INTO TEST VALUES( 4,4,null );
INSERT INTO TEST VALUES( 5,null,null );
INSERT INTO TEST VALUES( 6,0,0 );
のようにデータを入れて、
bcpコマンドで
bcp データベースの名前..テーブルの名前 out 出力先ファイル名
-n -SServerName -ULoginName -PPassWord
で、エクスポートされた内部形式ファイルが得られます。
この得られたファイルを調査すれば、int型データの内部形式フォーマット
が得られます。
このファイルを調査するとわかりますが、int型データが主キーにある場合
は4バイト整数フォーマットです。
ところが一般の列にint型がある場合は、NULL値を区別するために
『ある工夫』がされています。
エクスポートされたファイルをダンプすればわかります。
ぜひご自分で調査してください。
ヒント:int型の大きさは4バイトです。4という数字が別の数字に
置き換わっています。
主キーにはNULL値がありませんので、このような工夫は不要です。
---------------------------------------------------
(株)日本技術ソフト開発 堀川 明
mailto:who@example.ne.jp
mailto:who@sub.example.jp
http://www.horikawa.ne.jp/msde/
http://www.kt.rim.or.jp/~pwp/
02月04日(日曜日) 16時45分記
[MSDE/SQLServerに関して、今、どんなことにお困りですか?] |
よろしければお困りの内容を、電子メールで教えて下さい。 |
質問を電子メールで作成する
|
[ウィンドを閉じる][MSDE/SQLServer FAQ ][MSDE / MSDE2000 技術サポート情報一覧]
|