2

已解决(我自己的问题):

SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES

这对我有用。


按照此处Microsoft 网站上的教程,我发现使用以下代码循环遍历表的行非常容易。

 @{
   var data = Database.Open("FullDatabase").Query("SELECT * FROM Servers");
 } 

<div id="movieslist">
    <ol>
        @foreach(var row in data)
        {
        <li><a href="#">@row.Item</a></li>
        }
    </ol>
</div>

输出以下内容:

1. Virtual Machines

2. Physical Machines

3. Processors (CPU)

4. Memory (RAM)

5. OS Build

但是,“Servers”表只是数据库中的众多表之一。我想做的是这样的:

 @{
   var database = Database.Open("FullDatabase")
 } 

<div id="movieslist">
    <ol>
        @foreach(var table in database)
        {
        var data = database.Query("SELECT * FROM " + table);
            @foreach(var row in data)
            {
            <li><a href="#">@row.Item</a></li>
            }
         }
    </ol>
</div>

这样的事情可能吗?如果有怎么办?非常感谢。

4

1 回答 1

0

首先,这只是你为了好玩而做的事情,永远不会在生产站点中,因为你应该只检索你真正想要的东西,而不是浪费更多的带宽/时间来消耗你不需要的所有东西。

其次,您可以随时查询系统数据,并将所有表放到板上,您只需发出 SELECT 语句,如:

SELECT name FROM [sysobjects] WHERE xtype = 'u';

或者

SELECT name FROM [sys].[objects] WHERE type_desc = 'USER_TABLE';

或者

SELECT table_name FROM [information_schema].[tables];

它们都做同样的事情,具体取决于您使用的 SQL 版本...

所以你的database查询看起来像:

var database = Database
                  .Open("FullDatabase")
                  .Query("SELECT name FROM [sysobjects] WHERE xtype = 'u'");
于 2012-04-25T07:36:15.380 回答