如何列出 MSSQL 中的所有表?
Posted
技术标签:
【中文标题】如何列出 MSSQL 中的所有表?【英文标题】:How list out all tables in 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。你有错误吗?
没有错误,只是连接到数据库,没有别的。我确定数据库..我怎么知道它是否有权限问题?我没有托管数据库,在联系主机之前我需要知道。再次感谢
【参考方案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);
【讨论】:
以上是关于如何列出 MSSQL 中的所有表?的主要内容,如果未能解决你的问题,请参考以下文章