如何列出MSSQL中的所有表?

时间:2011-04-07 10:28:55

标签: php sql-server database select

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

我得到“已连接到数据库”,但没有别的。我的代码是否正确?我可以用另一种方式获取我需要的信息吗?

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

3 个答案:

答案 0 :(得分:10)

替代方式,也提取模式名称

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

答案 1 :(得分:3)

SELECT * FROM sys.Tables;

应该做的魔术:-D

如果你想看到所有列,我会做

SELECT TOP 1 * From Tablename;

所以你会得到所有列的一行,它不完美但是如果你只是想知道那就行了

答案 2 :(得分:0)

我这样做:

// 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);

        }