以下は、SQLServerの現在のデータベースにあるユーザー定義テーブルの数をすばやく判断するために使用できる5つの方法です。
5つのオプションはすべて、COUNT()
を使用します カウントを取得する関数。もちろん、これをアスタリスク(*
)に置き換えることができます。 )、またはすべてのユーザー定義テーブルのリストを返す列の名前。
オプション1– sys.tables
これを行う最も明白な方法は、sys.tables
にクエリを実行することです。 システムカタログビュー。このビューの全体的な目的は、各ユーザーテーブルの行を返すことであるため、まさに必要なものです。
USE WideWorldImportersDW; SELECT COUNT(*) AS [Number of User Tables] FROM sys.tables;
結果:
+-------------------------+ | Number of User Tables | |-------------------------| | 29 | +-------------------------+
この場合、WideWorldImportersDW
からユーザーテーブルの数を返します。 データベース。
別のデータベースに切り替えると、別の結果が得られます:
USE Music; SELECT COUNT(*) AS [Number of User Tables] FROM sys.tables;
結果:
+-------------------------+ | Number of User Tables | |-------------------------| | 4 | +-------------------------+
前述のように、COUNT(*)
を置き換えるだけで、テーブルを一覧表示できます。 アスタリスクの付いた行(*
)または列の名前:
USE Music; SELECT name FROM sys.tables;
結果:
+---------+ | name | |---------| | Artists | | Genres | | Albums | | Country | +---------+
オプション2–sys.objectsをタイプでフィルタリング
もう1つのオプションは、sys.objects
にクエリを実行することです。 カタログビュー。
USE Music; SELECT COUNT(*) AS [Number of User Tables] FROM sys.objects WHERE type = 'U';
結果:
+-------------------------+ | Number of User Tables | |-------------------------| | 4 | +-------------------------+
この場合、type = 'U'
でフィルタリングする必要があります (U
「ユーザーテーブル」用です。
オプション3–「タイプの説明」でsys.objectsをフィルタリングする
sys.objects
をクエリする別の方法 ビューは、type_desc
で結果をフィルタリングすることです 桁。
USE Music; SELECT COUNT(*) AS [Number of User Tables] FROM sys.objects WHERE type_desc = 'USER_TABLE';
結果:
+-------------------------+ | Number of User Tables | |-------------------------| | 4 | +-------------------------+
オプション4– OBJECTPROPERTY()関数を使用してsys.objectsをフィルタリングします
OBJECTPROPERTY()
を使用することもできます WHERE
で機能する 句。
この関数は、オブジェクトIDとプロパティの2つの引数を受け入れます。オブジェクトIDはテーブルID、プロパティはIsUserTable
にすることができます。 、オブジェクトがシステムテーブルであるかどうかを決定します。
したがって、次のようなことができます:
USE Music; SELECT COUNT(*) AS [Number of User Tables] FROM sys.objects WHERE OBJECTPROPERTY(object_id, 'IsUserTable') = 1;
結果:
+-------------------------+ | Number of User Tables | |-------------------------| | 4 | +-------------------------+
オプション5– INFORMATION_SCHEMA.TABLES
このオプションは、INFORMATION_SCHEMA.TABLES
にクエリを実行します 情報スキーマビュー。このビューはビューとテーブルの両方を返すため、TABLE_TYPE = 'BASE TABLE'
でフィルタリングする必要があります テーブルだけを返します。
USE Music; SELECT COUNT(*) AS [Number of User Tables] FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE';
結果:
+-------------------------+ | Number of User Tables | |-------------------------| | 4 | +-------------------------+
システムテーブルの数を確認する必要がある場合は、SQLServerでシステムテーブルの数をカウントする3つの方法を参照してください。