J'ai un schéma dans SQL Server 2012.
Existe-t-il une commande que je peux exécuter en SQL pour obtenir les noms de toutes les tables de ce schéma renseignées par l'utilisateur?
Je connais une requête similaire pour MySQL SHOW TABLES;
mais cela ne fonctionne pas avec SQL Server.
Vous devriez vraiment utiliser les vues INFORMATION_SCHEMA
dans votre base de données:
USE <your_database_name>
GO
SELECT * FROM INFORMATION_SCHEMA.TABLES
Vous pouvez ensuite filtrer cela par schéma de table et/ou type de table, par exemple.
SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE='BASE TABLE'
SELECT t.name
FROM sys.tables AS t
INNER JOIN sys.schemas AS s
ON t.[schema_id] = s.[schema_id]
WHERE s.name = N'schema_name';
SQL Server 2005, 2008, 2012 ou 2014:
SELECT * FROM information_schema.tables WHERE TABLE_TYPE='BASE TABLE' AND TABLE_SCHEMA = 'dbo'
Pour plus de détails: Comment obtenir la liste de toutes les tables d’une base de données utilisant TSQL?
SELECT t1.name AS [Schema], t2.name AS [Table]
FROM sys.schemas t1
INNER JOIN sys.tables t2
ON t2.schema_id = t1.schema_id
ORDER BY t1.name,t2.name
select * from [schema_name].sys.tables
Cela devrait marcher. Assurez-vous que vous êtes sur le serveur qui contient votre "[schema_name]"
SELECT *
FROM sys.tables t
INNER JOIN sys.objects o on o.object_id = t.object_id
WHERE o.is_ms_shipped = 0;