【问题标题】:How list out all tables in MSSQL?如何列出 MSSQL 中的所有表?
【发布时间】:2011-07-31 13:55:36
【问题描述】:

我正在使用下面的代码来显示我的数据库中的表。

我得到“连接到数据库”,但没有别的。我的代码正确吗?我可以使用其他方式获取我需要的信息吗?

<?php 
$link = mssql_connect('HOST', 'user', 'pass');

if (!$link || !mssql_select_db('dbname', $link)) {
    die('Unable to connect or select database!');
}else{
echo"Connected to database";
}


$v = mssql_query("Select name from sysobjects where type like 'u'");
$row = mssql_fetch_array($v);

echo "<br>";  echo $row[0]; echo "<br>";


mssql_free_result($v);
?>

【问题讨论】:

  • 我不是 100% 确定,但它会起作用:mssql_fetch_array($v, MSSQL_NUM);。另外,您确定选择的数据库吗?
  • 您的查询似乎适用于 MSSQL2000。你有错误吗?
  • 没有错误,只是连接到数据库,没有别的。我确定数据库..我怎么知道它是否有权限问题?我没有托管数据库,在联系主机之前我需要知道。再次感谢

标签: php sql-server database select


【解决方案1】:

另一种方式,也获取模式名称

SELECT TABLE_CATALOG ,
        TABLE_SCHEMA ,
        TABLE_NAME ,
        TABLE_TYPE
FROM INFORMATION_SCHEMA.TABLES

【讨论】:

  • Thaks MadBender,但仍然没有结果,空白页。你认为问题可能是数据库权限或类似的东西吗?我没有托管数据库,托管它的人可能忘记了一些东西。再次感谢
  • 是的,这是可能的。尝试使用 SSMS 或 SQL Explorer 等应用程序连接并执行此查询。它可能会给你更详细的错误信息。
  • 或者该数据库中可能没有表
  • 嗯,我希望我可以在主机中安装任何这些,但我不能,另一种方法?再次感谢
  • 也许你是对的。我会去托管服务。非常感谢!
【解决方案2】:
SELECT * FROM sys.Tables;

应该施展魔法:-D

如果你想查看所有列,我会这样做

SELECT TOP 1 * From Tablename;

所以你会得到一个包含所有列的行,它并不完美,但如果你只是想知道某事,它就可以了

【讨论】:

    【解决方案3】:

    我这样做:

    // Check if table exists
            $sqlExist = "SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'dem';";
            $stmtExist = sqlsrv_query( $conn_mssql, $sqlExist );
            $exist = $row = sqlsrv_fetch_array( $stmtExist, SQLSRV_FETCH_ASSOC);
    
            if ($exist == "") {
              echo "Die abgefragte Tabelle existiert nicht oder ist nicht erreichbar!";
            } else {
              // MSSQL QUERY ITSELF
              $sql = "SELECT * from dem;";
              $stmt = sqlsrv_query( $conn_mssql, $sql );
              if( $stmt === false) {
                  die( print_r( sqlsrv_errors(), true) );
              }
    
              while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC) ) {
                echo $row['id'] . " " . $row['cdemo2'] . ", " . $row['cdemo1'] . "<br>";
              }
    
              sqlsrv_free_stmt( $stmt);
    
            }
    

    【讨论】:

      猜你喜欢
      • 2010-12-07
      • 1970-01-01
      • 2018-08-08
      • 2023-03-31
      • 1970-01-01
      • 2016-12-06
      • 1970-01-01
      • 2011-07-11
      相关资源
      最近更新 更多