计算 SQL 服务器数据库中的表数

Count the Number of Tables in a SQL Server Database

我有一个名为 MyDatabase 的 SQL Server 2012 数据库。我怎样才能找到数据库中有多少个表?

我假设查询的格式如下所示,但我不知道用什么替换 database_tables

USE MyDatabase
SELECT COUNT(*)
FROM [database_tables]

您可以使用 INFORMATION_SCHEMA.TABLES 检索有关数据库的信息 tables。

Microsoft Tables Documentation所述:

INFORMATION_SCHEMA.TABLES returns one row for each table in the current database for which the current user has permissions.

因此,以下查询将 return 指定数据库中 table 的数量:

USE MyDatabase
SELECT COUNT(*)
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'BASE TABLE'

从 SQL Server 2008 开始,您还可以使用 sys.tables 来计算 table 的数量。

来自Microsoft sys.tables Documentation

sys.tables returns a row for each user table in SQL Server.

下面的查询也会return你的数据库中table的数量:

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';

获得 table 计数

SELECT COUNT(*)
FROM information_schema.tables
WHERE table_schema = 'dbName';

这也有效

USE databasename;
SHOW TABLES;
SELECT FOUND_ROWS();