2010-05-21 3 views

Répondre

8

une autre façon, travaillera également sur

MySQL et PostgreSQL
select TABLE_NAME from INFORMATION_SCHEMA.TABLES 
where TABLE_TYPE = 'BASE TABLE' 
4

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.

1

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 
0
sys.tables 

Contient toutes les tables. alors exécutez cette requête pour obtenir toutes les tables avec des détails.

SELECT * FROM sys.tables 

enter image description here

ou simplement sélectionnez Nom de sys.tables pour obtenir le nom de toutes les tables.

SELECT Name From sys.tables 
0

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'

+0

Veuillez utiliser une mise en forme appropriée lorsque cela est approprié. – svgrafov

+0

Sûr Jens..thanks :) –

Questions connexes