2011-08-18 79 views
4

我想在我的數據庫中顯示所有數據,而不必爲每個表格編寫select - 我該怎麼做?顯示所有表格的所有數據

我不想這樣做:

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

我使用TSQL與MSSQL服務器。

+0

哪個DBMS?在MSSQL中創建一個遊標並通過sysobjects進行交互以構建用於執行'SELECT'的動態SQL – rabudde

+0

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

回答

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

很好Vishal。謝謝 –

2

爲MySQL:

  1. 運行 SELECT information_schema.TABLES.TABLE_NAME FROM INFORMATION_SCHEMA.TABLES其中TABLE_SCHEMA = 'DB_NAME'

  2. 創建一個迴路,該回路將運行選擇查詢用於從得到的每個表第一個查詢。

+0

謝謝大家。我在MSSQL服務器中使用T_SQL –

1

使用數據庫管理工具在沒有模式的情況下轉儲數據庫。

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

並希望該代碼段應爲你工作就像是爲我工作!

+0

擴展:通過語言我顯然知道MySql,但我不確定他是使用命令行還是使用語言訪問它 - 這就是我的意思。 – 2011-08-18 11:12:44