web-dev-qa-db-fra.com

Compter le nombre de tables dans une base de données SQL Server

J'ai une base de données SQL Server 2012 appelée MyDatabase. Comment puis-je trouver combien de tables sont dans la base de données?

Je suppose que le format de la requête devrait ressembler à celui-ci, mais je ne sais pas quoi remplacer database_tables par:

USE MyDatabase
SELECT COUNT(*)
FROM [database_tables]
30
Tot Zam

Vous pouvez utiliser INFORMATION_SCHEMA.TABLES pour récupérer des informations sur vos tables de base de données.

Comme mentionné dans le Microsoft Tables Documentation :

INFORMATION_SCHEMA.TABLES renvoie une ligne pour chaque table de la base de données actuelle pour laquelle l'utilisateur actuel dispose d'autorisations.

Par conséquent, la requête suivante renverra le nombre de tables de la base de données spécifiée:

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

A partir de SQL Server 2008, vous pouvez également utiliser sys.tables pour compter le nombre de tables.

De la documentation Microsoft sys.tables :

sys.tables renvoie une ligne pour chaque table utilisateur dans SQL Server.

La requête suivante renverra également le nombre de table dans votre base de données:

SELECT COUNT(*)
FROM sys.tables
59
Tot Zam

Essaye ça:

SELECT Count(*)
FROM <DATABASE_NAME>.INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'BASE TABLE'
5
M84
USE MyDatabase
SELECT Count(*)
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'BASE TABLE';

pour obtenir des comptes de table

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

cela fonctionne aussi

USE databasename;
SHOW TABLES;
SELECT FOUND_ROWS();
2
Shafeer khan