2011-08-18 3 views
4

Je veux afficher toutes les données dans ma base de données sans écrire un select pour chaque table - comment puis-je faire?Afficher toutes les données de tous les tableaux

Je ne veux pas faire:

select * from Customer 
select * from Employee 
select ............. 

J'utilise TSQL avec MSSQL Server.

+0

quel SGBD? dans MSSQL créer un curseur et interférer sur sysobjects pour construire SQL dynamique pour faire 'SELECT's – rabudde

+0

http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html? – miku

Répondre

15
DECLARE @sqlText VARCHAR(MAX) 
SET @sqlText = '' 
SELECT @sqlText = @sqlText + ' SELECT * FROM ' + QUOTENAME(name) + CHAR(13) FROM sys.tables 
EXEC(@sqlText) 
+1

Très bon Vishal. Merci –

2

Pour mysql:

  1. Run SELECT information_schema.TABLES.TABLE_NAME DE INFORMATION_SCHEMA.TABLES où table_schema = 'nom_base'

  2. Créer une boucle qui se déroulera requête de sélection pour chaque table obtenu à partir la première requête

+0

merci à tous. J'utilise T_SQL dans MSSQL Server –

1

Utilisez les outils d'administration de base de données pour vider la base de données sans schéma.

0

Votre question me semble plutôt limitée. Quelle langue utilisez-vous? Quel est le but de ceci? Pour cette raison, il s'agit d'une réponse en plusieurs parties.

Tout d'abord, pour voir toutes les données dans une base de données MySql, phpMyAdmin est parfait pour le travail - un outil dont je peux presque garantir que la plupart des gens de SQL sont reconnaissants.

Pour la deuxième partie de la question: Je suppose que vous voulez le faire dynamiquement, ou il y a juste trop de tables pour écrire une requête à chaque fois. Je vais supposer le dynamiquement, parce que j'ai créé des bases de données dans le passé qui ajoute automatiquement des tables à lui-même pendant qu'il se développe. Cette solution en PHP est celle que je viens d'écrire pour vous qui devrait afficher tout dans une table. EDIT: Ce code est buggé - toutes les données sont affichées mais j'ai mal formaté la table. - EDIT: fixe.

<?php 
listAll("table_name"); 
function listAll($db) { 
    mysql_connect("localhost","root",""); 
    mysql_select_db($db); 
    $tables = mysql_query("SHOW TABLES FROM $db"); 
    while (list($tableName)=mysql_fetch_array($tables)) { 
    $result = mysql_query("DESCRIBE $tableName"); 
    $rows = array(); 
    while (list($row)=mysql_fetch_array($result)) { 
     $rows[] = $row; 
    } 
    $count = count($rows); 
    if ($count>0) { 
     echo '<p><strong>',htmlentities($tableName),'</strong><br /><table border="1"><tr>'; 
     foreach ($rows as &$value) { 
     echo '<td><strong>',htmlentities($value),'</strong></td>'; 
     } 
     echo '</tr>'; 
     $result = mysql_query("SELECT * FROM $tableName"); 
     while ($row=mysql_fetch_array($result)) { 
     echo '<tr>'; 
     for ($i=0;$i<(count($row)/2);$i++) { 
      echo '<td>',htmlentities($row[$i]),'</td>'; 
     } 
     echo '</tr>'; 
     } 
     echo '</table></p>'; 
    } 
    } 
return FALSE; 
} 
?> 

Et nous espérons que l'extrait de code devrait fonctionner pour vous comme il a travaillé pour moi!

+0

Expansion: Par langage je connais évidemment MySql, mais je ne suis pas sûr s'il utilise la ligne de commande ou s'il accède à partir d'une langue - c'est ce que je voulais dire. –

Questions connexes