ようこそ ゲスト さん、新規登録(無料)して気になる疑問を解決しませんか?

質問

QNo.3664378 テーブル作成時の行数の設定
質問者:MAME2001 はじめまして。
SQL Serber 初心者で、他に聞ける人がいないため質問させていただきます。

環境:SQL Server2000

あるDBのテーブルからINSERT文にて取得したデータをテーブルに保存したいと思い、新規にテーブルを作成したところ、10000行しかデータが入りません。
(実際に取得したデータは、87000行くらいあるのですが、そのうち、10000行しか入らなかったです)

原因がわからず、困っています。
よろしくお願いいたします。
困り度:
  • すぐに回答を!
質問投稿日時:
08/01/09 17:12
この質問に対する回答は締め切られました。
最新から表示回答順に表示

回答

ANo.3 ストアドの問題もそうですが、どちらかというと、
Accessのadpファイルでの制限もあるかもしれませんので、
そちらを調べてみることをお勧めします。

Accessになってしまうと、私まったくわからないので、
別途Accessのコーナーで詳しい方に聞いてみるといいかもしれません。

お役に立てなくてすいませんでした。
回答者:kero_mio
種類:アドバイス
どんな人:経験者
自信:参考意見
回答日時:
08/01/23 15:57
この回答へのお礼いえいえ!
ご親切にありがとうございます^^
Accessの方も調べてみますね。
ありがとうございました★

回答

ANo.2 補足情報ありがとうございます。またお返事が遅くなってしまい
すいません。

さて、情報を見る限り問題はなさそうで、さらにレコード長も
そんなに長くはないので、私が予想していた原因とは
少し的が外れてしまいました。

更なる確認で申し訳ないのですが、下記ご確認頂けると助かります。

その1:

INSERT INTO の下にあるSELECT文で、

  SELECT ....... FROM M_SMOD RIGHT JOIN ((M_MODCAT RIGHT JOIN   M_MOD ON ....

で取得した場合は、全件取得できている状態でしょうか?

その2:
INSERT文ではなく、
SELECT .... INTO 登録先テーブル FROM M_SMOD RIGHT JOIN ((M_MODCAT RIGHT JOIN M_MOD ON ....
とやった場合、どうなりますか?

#SELECT ... INTO 句の詳しい使い方は
 ​http://msdn2.microsoft.com/ja-jp/library/ms188029.aspx
 をご覧下さい。

お手数をお掛けいたしますが、よろしくお願いします。
回答者:kero_mio
種類:補足要求
どんな人:経験者
自信:参考意見
回答日時:
08/01/12 03:04
参考URL: http://msdn2.microsoft.com/ja-jp/library/ms188029.aspx
この回答への補足こんにちは!
お返事ありがとうございますね。
会社に出勤するのが火曜日になりますので、火曜日にまた試してみたいと思います。

ありがとうございますね^^
この回答へのお礼遅くなりました。
色々とありがとうございました。

SQL Server のEnterprise Manager では、きちんとSELECT文・INSERT文にてデータの取得ができるのですが、
Accessのadpファイルから、ストアドを実行すると、1万行しか入らないようです。
ストアドの書き方・実行の仕方が問題なのかもしれません。。

今回は、ここでやめておくことにしました。
ありがとうございました♪

回答

ANo.1 その格納先のテーブルですが、どれぐらいの項目数とレコード長が
ありますか?
また、どのようなSQLまたはストアド、T-SQLを書いて、
データを投入したのか教えて下さい。

できれば、INSERTしたコードとテーブル構成がわかると
有難いです。
回答者:kero_mio
種類:補足要求
どんな人:経験者
自信:参考意見
回答日時:
08/01/09 21:54
この回答への補足kero_mio様、ありがとうございます!

仕様(どうやっているか)を簡単ですが、ご説明させていただきます。
Accessのadpファイルに、画面(UI)を作成し、データはSQLServerのデータを持ってきています。
データは、ストアドで取得します。

テーブル
・WORKDATE char 8
・BUSYOID char 2
・WTIME real4
・各種データの名称を格納するために
varchar 50 のフィールドが9個

項目としては、計12個です。

ストアドです。
(JOIN句が長いですが、これで必要なデータは取得できています。
そのまま記載させていただきます)


INSERT INTO MTA_WORKTIME (今回作成したテーブル名です)
SELECT WORKTIME.WORKDATE,M_BUSYO.BUSYOID,
 RTRIM(M_BUSYO.BUSYONAME),RTRIM(M_USER.USERNAME),
 RTRIM(M_ACTCAT.ACTCATNAME),RTRIM(M_ACT.ACTNAME),
 RTRIM(M_PRJCAT.PRJCATNAME),RTRIM(M_PRJ.PRJNAME),
 RTRIM(M_MODCAT.MODCATNAME),RTRIM(M_MOD.MODNAME),
 RTRIM(M_SMOD.SMODNAME),WORKTIME.WTIME
FROM M_SMOD RIGHT JOIN ((M_MODCAT RIGHT JOIN M_MOD ON
 M_MODCAT.MODCATID=M_MOD.MODCATID) RIGHT JOIN
 ((M_PRJCAT RIGHT JOIN M_PRJ ON  
 M_PRJCAT.PRJCATID=M_PRJ.PRJCATID) RIGHT JOIN
 (M_ACT RIGHT JOIN (M_ACTCAT RIGHT JOIN (M_USER RIGHT JOIN
 (M_BUSYO RIGHT JOIN WORKTIME
 ON WORKTIME.BUSYOID=M_BUSYO.BUSYOID) ON
 WORKTIME.USERID=M_USER.USERID)
 ON (WORKTIME.BUSYOID=M_ACTCAT.BUSYOID) AND
 (WORKTIME.ACTCATID=M_ACTCAT.ACTCATID))
 ON (WORKTIME.BUSYOID=M_ACT.BUSYOID) AND  
 (WORKTIME.ACTCATID=M_ACT.ACTCATID) AND  
 (WORKTIME.ACTID=M_ACT.ACTID))
 ON WORKTIME.PRJID=M_PRJ.PRJID)
 ON (WORKTIME.PRJID=M_MOD.PRJID) AND
 (WORKTIME.MODID=M_MOD.MODID))
 ON (WORKTIME.PRJID=M_SMOD.PRJID) AND
 (WORKTIME.MODID=M_SMOD.MODID) AND   
 (WORKTIME.SMODID=M_SMOD.SMODID)
WHERE (WORKTIME.BUSYOID = @Syokumu AND M_PRJ.KAIJYO_F = '0' AND  M_USER.KAIJYO_F = '0'
 AND WORKTIME.WORKDATE>= @StartDate AND
 WORKTIME.WORKDATE <= @EndDate AND WORKTIME.WTIME <> 0);

どこにも、10000行の設定はしていないのですが、何かわかりますでしょうか?
よろしくお願いいたします。
この回答へのお礼この回答にお礼をつける(質問者のみ)
 
最新から表示回答順に表示