显示所有表的所有数据

时间:2011-08-18 10:42:07

标签: sql sql-server tsql

我想在我的数据库中显示所有数据而不为每个表写select - 我该怎么做?

我不想这样做:

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

我正在使用TSQL和MSSQL Server。

5 个答案:

答案 0 :(得分:17)

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

答案 1 :(得分:2)

对于mysql:

  1. 运行 SELECT information_schema.TABLES.TABLE_NAME FROM information_schema.TABLES where table_schema ='db_name'

  2. 创建一个循环,为第一个查询中的每个表运行select查询。

答案 2 :(得分:1)

使用数据库管理工具在没有架构的情况下转储数据库。

答案 3 :(得分:0)

你的问题对我很有限。你用的是什么语言?这样做的目的是什么? 因此,这是一个多部分答案。

首先,为了查看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;
}
?>

希望代码片段适合你,就像它对我有用一样!

答案 4 :(得分:0)

将表名标头添加到Vishal Gajjar的脚本中:

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