- 締切済み
テーブル作成時の行数の設定
はじめまして。 SQL Serber 初心者で、他に聞ける人がいないため質問させていただきます。 環境:SQL Server2000 あるDBのテーブルからINSERT文にて取得したデータをテーブルに保存したいと思い、新規にテーブルを作成したところ、10000行しかデータが入りません。 (実際に取得したデータは、87000行くらいあるのですが、そのうち、10000行しか入らなかったです) 原因がわからず、困っています。 よろしくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- kero_mio
- ベストアンサー率90% (94/104)
ストアドの問題もそうですが、どちらかというと、 Accessのadpファイルでの制限もあるかもしれませんので、 そちらを調べてみることをお勧めします。 Accessになってしまうと、私まったくわからないので、 別途Accessのコーナーで詳しい方に聞いてみるといいかもしれません。 お役に立てなくてすいませんでした。
- kero_mio
- ベストアンサー率90% (94/104)
補足情報ありがとうございます。またお返事が遅くなってしまい すいません。 さて、情報を見る限り問題はなさそうで、さらにレコード長も そんなに長くはないので、私が予想していた原因とは 少し的が外れてしまいました。 更なる確認で申し訳ないのですが、下記ご確認頂けると助かります。 その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 をご覧下さい。 お手数をお掛けいたしますが、よろしくお願いします。
お礼
遅くなりました。 色々とありがとうございました。 SQL Server のEnterprise Manager では、きちんとSELECT文・INSERT文にてデータの取得ができるのですが、 Accessのadpファイルから、ストアドを実行すると、1万行しか入らないようです。 ストアドの書き方・実行の仕方が問題なのかもしれません。。 今回は、ここでやめておくことにしました。 ありがとうございました♪
補足
こんにちは! お返事ありがとうございますね。 会社に出勤するのが火曜日になりますので、火曜日にまた試してみたいと思います。 ありがとうございますね^^
- kero_mio
- ベストアンサー率90% (94/104)
その格納先のテーブルですが、どれぐらいの項目数とレコード長が ありますか? また、どのようなSQLまたはストアド、T-SQLを書いて、 データを投入したのか教えて下さい。 できれば、INSERTしたコードとテーブル構成がわかると 有難いです。
補足
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行の設定はしていないのですが、何かわかりますでしょうか? よろしくお願いいたします。
お礼
いえいえ! ご親切にありがとうございます^^ Accessの方も調べてみますね。 ありがとうございました★