• ベストアンサー

SQLServerのあるデータベースの中にあるテーブルの件数をすべて調べたい時どうすれば?

Windows2000 SQLServer2000を使用しています。 あるデータベースの中にテーブルが100つぐらい あります。 その100ぐらいのテーブルの中にある それぞれのテーブルの中にある件数が知りたいのですが、 どうすれば分かるでしょうか? 表示をタスクパッドにすれば画面に表示できることは 知っているのですが、次へボタンを押すのが 面倒だし、ファイルに出力したいのであまり使えません。 どなたか何か分かる方、至急教えて下さい。 困っています。

質問者が選んだベストアンサー

  • ベストアンサー
  • YanYas
  • ベストアンサー率34% (26/75)
回答No.2

できましたか。よかったです。 何のテーブル名がわからないとのことですが・・・ テーブル名を結果と一緒に出力してはいかがでしょう。  select "テーブル名" as "TableName" . count(*) as "count" from テーブル名 # 足りないものは出力させればよいのです。(^^)v ###### ファイルに出力させればよいようなので必要ないかもしれませんが、以下のようなテーブルを作成しておいて・・・  create table RowCountOfTable  ( TableName char(30) , RowCount int , CheckDate datetime ) 以下のSQLを実行すると「テーブル名、件数、時刻」が保存できます.  insert RowCount select "テーブル名",count(*),getdate() from テーブル名 # insert 文をまとめてストアドプロシジャで作成しておくと実行が楽かもしれません。いろいろ工夫してみてください。(^^)/

SEAMOON
質問者

お礼

ありがとうございます!!! いろいろと助かりました。感謝です!

その他の回答 (1)

  • YanYas
  • ベストアンサー率34% (26/75)
回答No.1

一般的な回答で申し訳ないですが・・・  select count(*) from テーブル名 を実行するとテーブルに存在する件数はわかります。 100テーブル分のSQLを記述したファイルを作成し コマンドプロンプトからisqlで実行、ファイルにリダイレクトすれば可能です。 <実行イメージ> isql -Uxx -Pxx < SQLファイル > 結果ファイル # もっといい方法があるかもしれません。

SEAMOON
質問者

お礼

おぉ、なっ、なるほど! ありがとうございます。

SEAMOON
質問者

補足

えっと、補足します。件数はファイルに出力できたのですが、テーブル名を出力できないので、何のテーブルの件数か分からないのですが、どうしたらよいでしょう・・うぅ。

関連するQ&A

  • AccessとSqlServerのテーブルリンク

    Access2007とSqlServer2008を使用しています。 Accessで作成したテーブルを「データベースツール」-「データの移動」でSqlServerに移行してリンクする際、 (1)SqlServerに新規にデータベースを作成すると、リンクテーブルマネージャから見てもリンク先DBが正しく表示されますが、 (2)その後、その既存DBに同じAccess内の別のテーブルを、「データベースツール」-「データの移動」してリンクしたものは、リンクテーブルマネージャから見てもリンク先DBが ()となっており表示されていません。 ツールとしてSqlServer Management Studioを使っていますが、そこからでも(1)のテーブルは表示されていますが、(2)のテーブルは表示されません。 でもリンクはできているようなのです。 また、SqlServer Management Studioを使って、SqlServer内に新規テーブルを作成し、 それをAccessからリンクしようとしても、テーブルリンク一覧内に表示されない状態です。 (「外部データ」-「ODBCデータベース」…)にて SqlServerのファイルデータソースを表示しています) (2)のテーブルはSqlServer Management Studioから見ることができないため、更新・削除もできず困っています。 DB、テーブル、リンク方法等、何か問題があるのでしょうか? よろしくお願いします。

  • SQLServerのデータベース間でデータコピー

    こんにちは。SQLServer2000(SP3a)、VB6.0(SP5)でデータベースの勉強をしています。用語に詳しくないので、うまく説明できないと思いますが、相談にのってください。 SQLServerに、「データベースA」と「データベースB」があり、VBのコマンドボタンをクリックすると、データベースAのテーブル1のデータをそのままデータベースBのテーブル1に移動させたいと思っています。 私の知識では、データベースAのテーブル1のデータをSelectですべて読み込み、変数などに入れておき、データベースBのテーブル1にInsertするという効率の悪い方法しか思い浮かばず、レコード数が多いので、時間がかかり困っています。 他に良い方法があればアドバイスをお願いします。 よろしくお願いします。

  • データベース内でテーブルのコピーがしたいのですが

    SQLserver EnterpriseManagerを使っているのですが、同じデータベース内でテーブルの複製(中のデータも含む)を作りたいのですがどのようにすればよろしいのでしょうか。よろしくお願いします。

  • ODBCでSQLServerテーブルが参照できない

    自宅のパソコンでSQLServerをインストールし、 それにデータベース・テーブルなどを作成し、VisuualStudioでC#/ASP.NETのアプリを開発しています。 今回、データベースのマスタをメンテナンスするツールをAccessで作成したいので ODBC接続の設定を行い、 Access側からリンクテーブルでSQLServerのテーブルを参照したいのですが SQLServverで作成したテーブルが一覧に一切表示できず、何かシステムテーブルのようなものだけが表示されます。 会社では上記のことが問題なく行えました。 会社で違うのは、SQLServerは別のサーバーマシン内にある点です。 自宅の場合、データベースサーバーも同じパソコンのため上手くいかないのでしょうか。 自宅でも効率よく作業したいので同じように環境構築したいのです。 何か、原因等わかる方がおられましたら ご教授願います。

  • SQLServerのEnterpriseManagerでシステムテーブルを表示させない方法

    確かSQLServer2000で(2005からだったかな?) EnterPriseMangerでデータベースのテーブルを 開いた時にシステムテーブルを表示させない 設定ができたはずなのですが、どこでできるのか 忘れてしまいました。 どなたか教えてください。

  • ★クリスタルレポートの元になるテーブルを途中で変えたい時、どうすれば??

    クリスタルレポートを作る時、 元になるデータベースを選んでテーブルを選んで、 必要な項目を画面に貼り付けていくわけですけど、 たくさん画面に式なり項目なりを貼り付けたあとで、 テーブル1 から 全く同じ構造のテーブルである テーブル2に 出力元を変えたいとします。 私は今まで、「データベース」→「データベースからレポートを追加」 でテーブル2を追加し、そのあとで、「データベース」→ 「レポートから ファイルを削除」でテーブル1を選んで消していました。 すると、項目をそのまま貼り付けてあったものはすべて消えてしまいますが、 式を作ってその中に、[テーブル1.項目1]と書いてあった場合は そのままで残っています。 その状態で例えば、プレビューボタンを押すとすると、 当然もうテーブル1はないので、エラーとなります。 その式の中のテーブル1をすべて手動でテーブル2に変えるという作業を していました。 バージョンは問いません。使っているのは、7と8です。 何か一度に変える方法はないのでしょうか? 式の中のものをすべて置き換える方法などないでしょうか? 他の方法でもいいのでどなたか至急教えて下さい。 項目がたくさんある時とても大変です・・・

  • SQLServerのテーブル定義書(?)を作るツールはないでしょうか?

    おはようございます。 プログラムからSQLServerのデータを使う必要があるのですが、 テーブル定義書(あるテーブルのフィールド名や型、サイズなど)を調べる必要がでてきました。 今まではEnterprizeManagerやAccessをViewerにするなどして中身を確認していたのですが、 テーブル数が60くらいありまして、それを一つずつ確認する手間をなんとか省けないかと考えています。 Internetで検索をかけると、 「SQLServer仕様書 根こそぎ情報収集」 http://www.vector.co.jp/soft/win95/business/se322755.html?g が一番近いようにも思うのですが、 こちらはWindows認証に対応していないようで、 そのままでは当方で使えません。 どなたか以下の条件に見合うツールをご存知の方はいないでしょうか? 1.SQLServerへの接続はWindows認証を使っている 2.テーブルの名称、フィールド名、型、サイズ、主キー設定、NULLの許可を一覧として出力できる 3.フリーソフトである(^_^;) 環境は Windows2003Server+SQLServer2000です。 よろしくお願いします。

  • SQLServerでのデータベース設計について

    あるシステムのデータベース設計をしております。 あまり知識、経験が無い為ご知恵をお借り出来たらと思います。 システムの概要としては、 「600件程度のデータを1時間毎にデータベースに取り込む。これを24時間365日続ける。さらに20箇所分同時に処理を行う。」 というものなります。 ざっと試算すると、1年だと ((600件 * 24時間) * 365日) * 20箇所 = 105,120,000件のデータを持つことになります。 これを10年間で考えると、105,120,0000件となります。 今のところ、シンプルに600件をそのまま取り込もうとしておりますが、 データ量が膨大になってしまう為、ディスク容量やインデックス等貼ったとしてもパフォーマンスが落ちないか等不安になってしまいます。 MSDNの情報でデータベースの容量を見積もったのですが、105,120,0000件だと1TB程必要となるようでした。 SQLSeverでこの位の件数、容量は一般的なのでしょうか? もしくは600件をそのままでは無く、1データとして取込み、 データを表示する際にプログラムで分割して処理する等の形にするのが良いのでしょうか? ちなみにWindows 2008 R2サーバーでSQLServer 2008 R2 Webエディションの環境となります。 宜しくお願いします。

  • ACCESS2003のテーブルのリンクでODBCデータベースが選択できない

    このカテゴリであってるかわかりませんが、SymantecのNortonInternetSecurity2006をインストール後、ACCESS2003の外部データの取り込みでテーブルのリンクを選択し、ファイルの種類で「ODBCデータベース」を選択しても、選択するウィンドウが表示されません。SQLServer2000のデータを見るために、よく使っているため、すごく困っています。

  • Accessデータベースウインドウの矢印のアイコン(見つからないテーブル)

    職場で、前任の方(今は職場にいらっしゃいません)が作ったAccess2000形式のデータベースを引き継ぎました。私はAccess2003を使用しています。 ファイルを開くとフォームが出てきます。ボタンをクリックするとさらに入力フォームが開くはずのようですが ボタンをクリックしたときに「指定したテーブルが見つかりません」という表示が出てきます。 データベースウインドウでテーブルを確認すると、 見つからないと言われたテーブル名は存在し、テーブルがあるように見えるのですが、 それをダブルクリックして開こうとすると、そのテーブルが見つかりませんでした、というメッセージが出てきます。 データベースウインドウでテーブルの欄に並んでいるテーブルのいくつかは、テーブル名の左のテーブルマークの小さいアイコンの左に、右向きの矢印が付いています。 上記のテーブルを含め、この矢印がついているテーブルは皆、見つかりません、というメッセージが出てくるため、 何か他の場所にあるとか、そいういうことなのかとも思いますが、うまく調べることができず、わかりませんでした。 この矢印の意味や、 テーブルを開こうとするときに出て来るメッセージについてご存知の方、教えてください。