• ベストアンサー

全テーブルのデータの行数

DB1と言うデータベースの中に TABLE1、TABLE2、TABLE3・・・ の様にテーブルが複数ある状態で それぞれのテーブルに何件のデータが 登録されているかをカウントして表示できるような SQLはあるのでしょうか?

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

  • ベストアンサー
noname#11722
noname#11722
回答No.1

単体であれば普通だと思うんですが、 SELECT count(*) AS RCOUNT FROM TABLE1 こんな感じで、 で、一応複数のテーブルって書いてあるので、 複数のテーブルを効率良くってことでしょうか? それならば、以下のような感じで、 DECLARE @name nvarchar(30) DECLARE @sql nvarchar(200) DECLARE TCUR CURSOR FOR SELECT name FROM sysobjects WHERE type = 'U' OPEN TCUR FETCH NEXT FROM TCUR INTO @name WHILE (@@fetch_status <> -1) BEGIN SET @sql = 'SELECT count(*),''' + @name + ''' AS TNAME FROM '+ @name EXEC(@sql) FETCH NEXT FROM TCUR INTO @name END CLOSE TCUR DEALLOCATE TCUR 参考にしてください。

noname#9122
質問者

お礼

質問の内容が曖昧で解り難かったですね。 複数のテーブルを効率良くと言う意味でした。 sysobjectsのType Uでユーザーのテーブルが 取得出来るんですね。 非常に参考になるSQLを書いて頂き 有難う御座いました。

その他の回答 (1)

  • hanaoo
  • ベストアンサー率27% (6/22)
回答No.2

クエリアナライザで select count(*) from TABLE1 って名かんじで数えるだけではだめですか?

noname#9122
質問者

お礼

単一テーブルのみでしたら 上記のSQLで取得できますね。 回答有難う御座いました。

関連するQ&A