Tot*_*Zam 36 t-sql sql-server sql-server-2012
我有一个SQL Server 2012数据库MyDatabase.如何查找数据库中有多少个表?
我假设查询的格式类似于以下内容,但我不知道要替换什么database_tables:
USE MyDatabase
SELECT COUNT(*)
FROM [database_tables]
Run Code Online (Sandbox Code Playgroud)
Tot*_*Zam 64
您可以使用它INFORMATION_SCHEMA.TABLES来检索有关数据库表的信息.
INFORMATION_SCHEMA.TABLES为当前用户具有权限的当前数据库中的每个表返回一行.
因此,以下查询将返回指定数据库中的表数:
USE MyDatabase
SELECT COUNT(*)
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'BASE TABLE'
Run Code Online (Sandbox Code Playgroud)
从SQL Server 2008开始,您还可以使用sys.tables 计算表的数量.
sys.tables为SQL Server中的每个用户表返回一行.
以下查询还将返回数据库中的表的数量:
SELECT COUNT(*)
FROM sys.tables
Run Code Online (Sandbox Code Playgroud)
小智 16
USE MyDatabase
SELECT Count(*)
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'BASE TABLE';
Run Code Online (Sandbox Code Playgroud)
获取桌数
SELECT COUNT(*)
FROM information_schema.tables
WHERE table_schema = 'dbName';
Run Code Online (Sandbox Code Playgroud)
这也有效
USE databasename;
SHOW TABLES;
SELECT FOUND_ROWS();
Run Code Online (Sandbox Code Playgroud)
小智 5
尝试这个:
SELECT Count(*)
FROM <DATABASE_NAME>.INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'BASE TABLE'
Run Code Online (Sandbox Code Playgroud)