MSDE FunClub
Microsoft Data Engine FunClub
MSDE技術者向けメーリングリスト過去ログ[424]番
 
[TOP]>[MSDE技術者向けメーリングリスト過去ログ(424番)]>[ウィンドを閉じる]
 
SQLServer2005時代でも
開発の基本は T-SQL
上巻で T-SQL の基礎作り
 
SQLServer2005時代でも
運用の基本はバックアップ
下巻でバックアップ手法を学びましょう
PASSJ人気コンテンツで学んだ後は下巻でさらなる学習を!
 
ウィンドを閉じる
MSDE/SQLServer FAQ
MSDE / MSDE2000 
技術情報サポート
初心者向け
メーリングリスト
過去ログの表示
技術者向け
メーリングリスト
過去ログの表示
メーリングリスト
活動状況の
表示
MSDE TOP メニュー
MSDEトップメニューに移動します
 

 
RE: 引き続き bcpの質問ですが

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 技術サポート情報一覧]

MSDE TOP ページに移動する

 
 
 
 
 
 
 
MSDE FunClubに関するご意見・ご要望等ございましたら、
msdefun@horikawa.ne.jp までご連絡下さい。
MSDEを始めとする各種データベースシステムの開発、コンサルタントに関するご要望等は、
msdedev@horikawa.ne.jp までご連絡下さい。