Est-il possible d'écrire une requête qui me donnera le nom de toutes les tables d'une base de données SQL Server? Je travaille sur une documentation «après le fait» sur un système que je n'ai pas créé et je cherche un raccourci pour obtenir une liste des tables dans une base de données.Requête pour obtenir le nom de toutes les tables dans la base de données SQL Server 2008
Répondre
Dans une base de données unique - oui:
USE your_database
SELECT name FROM sys.tables
Obtenir toutes les tables dans toutes les bases de données - seulement un hack .... voir cette question pendant plusieurs approches comment faire: How do I list all tables in all databases in SQL Server in a single result set?
une autre façon, travaillera également sur
MySQL et PostgreSQLselect TABLE_NAME from INFORMATION_SCHEMA.TABLES
where TABLE_TYPE = 'BASE TABLE'
Essayez ceci:
SELECT s.NAME + '.' + t.NAME AS TableName
FROM sys.tables t
INNER JOIN sys.schemas s
ON t.schema_id = s.schema_id
il affichera le nom schéma + table pour toutes les tables de la base de données en cours.
Voici une version qui liste chaque table dans chaque base de données sur le serveur actuel. il permet un paramètre de recherche à utiliser sur une ou plusieurs parties du serveur + base de données + noms de schéma + tableau:
SET NOCOUNT ON
DECLARE @AllTables table (CompleteTableName nvarchar(4000))
DECLARE @Search nvarchar(4000)
,@SQL nvarchar(4000)
SET @Search=null --all rows
SET @SQL='select @@SERVERNAME+''.''+''?''+''.''+s.name+''.''+t.name from [?].sys.tables t inner join sys.schemas s on t.schema_id=s.schema_id WHERE @@SERVERNAME+''.''+''?''+''.''+s.name+''.''+t.name LIKE ''%'+ISNULL(@SEARCH,'')+'%'''
INSERT INTO @AllTables (CompleteTableName)
EXEC sp_msforeachdb @SQL
SET NOCOUNT OFF
SELECT * FROM @AllTables ORDER BY 1
ensemble @Search à NULL pour toutes les tables, réglez-le sur des choses comme « » dbo.users ou 'utilisateurs' ou '.master.dbo' ou même inclure des caractères génériques comme, etc.
Pour obtenir les informations des champs aussi, vous pouvez utiliser ce qui suit '.master% u..':
SELECT TABLE_SCHEMA, TABLE_NAME,
COLUMN_NAME, substring(DATA_TYPE, 1,1) AS DATA_TYPE
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA NOT IN("information_schema", "mysql", "performance_schema")
ORDER BY TABLE_SCHEMA, TABLE_NAME, ORDINAL_POSITION
Veuillez utiliser la requête suivante pour répertorier les tables de votre base de données.
select name from sys.Tables
En outre, vous pouvez ajouter une condition where
, sauter générés par le système des tables et des listes de table uniquement créé par l'utilisateur en ajoutant type ='U'
Ex: select name from sys.Tables where type ='U'
Veuillez utiliser une mise en forme appropriée lorsque cela est approprié. – svgrafov
Sûr Jens..thanks :) –
- 1. Puis-je obtenir le nom de toutes les tables de la base de données SQL Server dans l'application C#?
- 2. Requête SQL pour rechercher le schéma de toutes les tables
- 3. Comment puis-je obtenir le nom de toutes les tables d'une base de données JavaDB?
- 4. Sélectionner toutes les colonnes de toutes les tables dans SQL Server 2008
- 5. SQL Server Compact - nombre d'enregistrements/espace utilisé pour toutes les tables de la base de données
- 6. Sql Requête pour lister toutes les vues dans une base de données SQL Server 2005
- 7. Problème de nom des tables SQL Server 2008
- 8. Insertion rapide des tables de données relationnelles (normalisées) dans la base de données SQL Server 2008
- 9. instruction SQL tronque toutes les données de toutes les tables de la base de données
- 10. Problème de requête SQL SQL Server 2008
- 11. Comment définir la spécification d'audit de base de données pour toutes les tables dans db
- 12. Entreposage de données dans SQL Server 2008
- 13. Requête SQL pour lister toutes les bases de données dans une instance de Sql-Server?
- 14. sql server 2008 diagrammes de base de données recherche de nom de table
- 15. SQL Server 2008 - Requête de texte intégral
- 16. Requête SQL Server 2008
- 17. Importation de la base de données Sql Server 2005 dans Sql Server express 2008
- 18. Quelle est la requête SQL pour afficher le nombre de tables dans une base de données?
- 19. Sauvegarde de base de données dans SQL Server 2008
- 20. Requête SQL pour un schéma de base de données
- 21. Obtenir le nom d'utilisateur Asp.Net de SQL Server 2008?
- 22. Partitionnement de tables SQL Server 2008
- 23. Comment filtrer la sortie du profileur SQL Server 2008 pour une base de données unique? SQL Server 2008 Profiler profile toujours toutes les bases de données.
- 24. Comment faire pour synchroniser la base de données SQL Server 2008 avec la base de données SQL Server 2005?
- 25. SQL Server 2008 base de données de conversion de Collation
- 26. Comment spécifier le nom d'une base de données pour obtenir le nom de ses tables en utilisant la syntaxe sql server 2005
- 27. Comment puis-je migrer la base de données de SQL Server 2008 vers SQL Server 2000
- 28. Nombre d'entrées dans la base de données SQL Server entière
- 29. Performances de requête SQL Server 2000 vs SQL Server 2008
- 30. J'ai 2 tables MySql. Comment obtenir toutes les données d'eux dans une requête de 1 sql?
ont parfaitement fonctionné! –