MyDatabase
というSQL Server 2012データベースがあります。データベース内にいくつのテーブルがあるかを見つけるにはどうすればよいですか?
クエリの形式は次のようになると想定していますが、database_tables
をどのように置き換えるかわかりません。
USE MyDatabase
SELECT COUNT(*)
FROM [database_tables]
INFORMATION_SCHEMA.TABLES
を使用して、データベーステーブルに関する情報を取得できます。
Microsoft Tables Documentation で述べたように:
INFORMATION_SCHEMA.TABLES
は、現在のユーザーが権限を持っている現在のデータベースの各テーブルに対して1行を返します。
したがって、次のクエリは、指定されたデータベース内のテーブルの数を返します。
USE MyDatabase
SELECT COUNT(*)
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'BASE TABLE'
SQL Server 2008では、sys.tables
を使用してテーブルの数をカウントすることもできます。
Microsoft sys.tables Documentation から:
sys.tables
は、SQL Serverの各ユーザーテーブルの行を返します。
次のクエリは、データベース内のテーブルの数も返します。
SELECT COUNT(*)
FROM sys.tables
これを試して:
SELECT Count(*)
FROM <DATABASE_NAME>.INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'BASE TABLE'
USE MyDatabase
SELECT Count(*)
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'BASE TABLE';
テーブル数を取得する
SELECT COUNT(*)
FROM information_schema.tables
WHERE table_schema = 'dbName';
これも機能します
USE databasename;
SHOW TABLES;
SELECT FOUND_ROWS();