INFORMATION_SCHEMA.TABLESでレコード数を取得する

2024-04-02

SQL Serverデータベース内の各テーブルのレコード数をリストするクエリ

このチュートリアルでは、SQL Serverデータベース内の各テーブルのレコード数を取得するクエリについて解説します。2つの方法を紹介します。

方法1:sys.tablesとCOUNT_BIG

SELECT
    t.name AS テーブル名,
    COUNT_BIG(*) AS レコード数
FROM
    sys.tables AS t
WHERE
    t.is_ms_shipped = 0
ORDER BY
    レコード数 DESC;

解説

  • sys.tables は、データベース内のすべてのテーブルに関する情報を格納するシステムテーブルです。
  • COUNT_BIG(*) は、テーブル内のすべてのレコード数をカウントします。
  • WHERE 句は、システムテーブル (is_ms_shipped = 0) を除外します。
  • ORDER BY 句は、レコード数に基づいて結果を降順に並べ替えます。

方法2:sp_spaceused

EXEC sp_spaceused @dbname = N'your_database_name';
  • sp_spaceused は、データベース内の各テーブルのディスク使用量に関する情報を取得するストアドプロシージャです。
  • @dbname パラメータは、データベースの名前を指定します。
  • 結果には、各テーブルのレコード数も含まれます。

補足

  • 上記のクエリは、すべてのテーブルのレコード数を取得します。特定のテーブルのみのレコード数を取得したい場合は、WHERE 句でテーブル名を指定します。
  • より詳細な情報を取得するには、sys.partitionssys.indexes などの他のシステムテーブルを使用できます。



USE your_database_name;

GO

SELECT
    t.name AS テーブル名,
    COUNT_BIG(*) AS レコード数
FROM
    sys.tables AS t
WHERE
    t.is_ms_shipped = 0
ORDER BY
    レコード数 DESC;

GO
USE your_database_name;

GO

EXEC sp_spaceused @dbname = N'your_database_name';

GO
  • 上記のコードは、your_database_name を実際のデータベース名に置き換えて実行してください。
  • 結果は、テーブル名とレコード数、またはディスク使用量が表示されます。



方法3:sys.partitionsとSUM

SELECT
    t.name AS テーブル名,
    SUM(ps.rows) AS レコード数
FROM
    sys.tables AS t
INNER JOIN
    sys.partitions AS ps ON t.object_id = ps.object_id
WHERE
    t.is_ms_shipped = 0
GROUP BY
    t.name
ORDER BY
    レコード数 DESC;
  • SUM(ps.rows) は、テーブル内のすべてのパーティションのレコード数を合計します。

方法4:INFORMATION_SCHEMA.TABLES

SELECT
    table_name AS テーブル名,
    table_rows AS レコード数
FROM
    INFORMATION_SCHEMA.TABLES
WHERE
    table_type = 'BASE TABLE'
ORDER BY
    table_rows DESC;
  • INFORMATION_SCHEMA.TABLES は、データベース内のすべてのテーブルに関する情報を格納する仮想テーブルです。
  • table_rows 列には、テーブル内のレコード数が含まれます。

方法5:SSMS GUI

SQL Server Management Studio (SSMS) を使用して、各テーブルのレコード数を取得することもできます。

  1. SSMS でデータベースに接続します。
  2. オブジェクトエクスプローラーで、データベースを展開します。
  3. テーブル フォルダを展開します。
  4. 各テーブルを右クリックし、プロパティ を選択します。
  5. ストレージ ページで、レコード数 の値を確認します。

sql-server database


データベースアプリケーションにおける XSD データセットと外部キーの重要性

XSD データセットは、XML スキーマ定義 (XSD) を使用して定義されたデータの集合です。.NET では、DataSet クラスを使用して XSD データセットを表します。外部キーは、データベースの 2 つのテーブル間の関連を表す制約です。XSD データセットでは、ForeignKeyConstraint クラスを使用して外部キーを表します。...


SQL Server 2005でUTCとローカル時間(PSTなど)の日付を変換する方法

この方法は、単純でわかりやすい方法です。この方法では、GETDATE() 関数を使用して現在の日時を取得し、DATEADD() 関数を使用して、オフセット時間(PSTの場合は-8時間)を加減することで変換を行います。SQL Server 2005では、DATETIME2 データ型が導入されました。 このデータ型は、タイムゾーン情報を含むことができます。...


SQL Serverでシーケンスを実装する方法

Microsoft SQL Server には、シーケンスを実装するためのいくつかの方法があります。IDENTITY プロパティは、テーブルの列に自動的に一意の番号を生成させるものです。これは、最も簡単で一般的なシーケンス実装方法です。上記の例では、MyTable テーブルには Id という列があり、IDENTITY プロパティによって自動的に 1 から始まる一意の番号が生成されます。...


SQL Serverにおける主キーの選び方:整数、文字列、GUID、複合キー

一意性: GUIDは世界中で一意な識別子を生成するため、重複する可能性がありません。順序性: GUIDは生成された順序でソートされます。パフォーマンス: GUIDはランダムな値なので、インデックスのパフォーマンスが向上します。グローバルな分散: GUIDはデータベースサーバーや地域を超えて一意性を保ちます。...


サードパーティ製ツールを使用してSQL Serverでストアドプロシージャを検索する方法

全文検索を使用するSQL Server 2008以降では、全文検索機能を使用して、ストアドプロシージャ内のテキストを検索できます。 これを行うには、以下の手順に従います。sys. sql_modules ビューに対して全文インデックスを作成します。...


SQL SQL SQL SQL Amazon で見る



パフォーマンス向上!SQL Serverのすべてのテーブルの行数を取得してデータベースを分析する方法

ここでは、SQL Serverデータベースのすべてのテーブルの行数を取得する方法について、いくつかの方法をご紹介します。この方法は、sys. tables と sys. indexes システムテーブルを使用して、各テーブルの行数を取得します。