Показать все данные всех таблиц - PullRequest
5 голосов
/ 18 августа 2011

Я хочу отобразить все данные в моей базе данных без записи select для каждой таблицы - как я могу это сделать?

Я не хочу этого делать:

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

Я использую TSQL с MSSQL Server.

Ответы [ 4 ]

17 голосов
/ 18 августа 2011
DECLARE @sqlText VARCHAR(MAX)
SET @sqlText = ''
SELECT @sqlText = @sqlText + ' SELECT * FROM ' + QUOTENAME(name) + CHAR(13) FROM sys.tables
EXEC(@sqlText)
2 голосов
/ 18 августа 2011

Для mysql:

  1. Запустить SELECT information_schema.TABLES.TABLE_NAME FROM information_schema.TABLES, где table_schema = 'db_name'

  2. Создать циклкоторый будет выполнять запрос выбора для каждой таблицы, полученной из первого запроса.

1 голос
/ 18 августа 2011

Используйте инструменты администратора базы данных для выгрузки базы данных без схемы.

0 голосов
/ 18 августа 2011

Ваш вопрос кажется мне довольно ограниченным.Какой язык вы используете?Какова цель этого?По этой причине это многочастный ответ.

Прежде всего, для просмотра всех данных в базе данных MySql, phpMyAdmin идеально подходит для работы - инструмент, который я почти гарантируюбольшинство парней SQL благодарны.

Для второй части вопроса: я предполагаю, что вы хотите сделать это динамически, или слишком много таблиц, чтобы написать запрос каждый раз.Я предполагаю, что динамически, потому что в прошлом я создавал базы данных, которые автоматически добавляют таблицы к себе по мере роста.Это решение на PHP, которое я только что написал для вас, должно отображать все в таблице. РЕДАКТИРОВАТЬ: этот код содержит ошибки - все данные отображаются, но я неправильно форматировал таблицу. - РЕДАКТИРОВАТЬ: исправлено.

<?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;
}
?>

И, надеюсь,этот фрагмент кода должен работать для вас, как будто он работает для меня!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...