2011-04-07 90 views
4

我正在使用下面的代码来显示我的数据库中的表。如何列出MSSQL中的所有表?

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

非常感谢

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

我不是100%肯定,但将这项工作:'mssql_fetch_array($ V ,MSSQL_NUM);'。另外,你确定选择了数据库吗? – Ali 2011-04-07 10:34:04

+0

您的查询似乎在MSSQL2000上可用。你得到一个错误或什么? – 2011-04-07 10:40:33

+0

没有错误,只是连接到数据库而没有其他东西。我确信数据库..我怎么知道它是否有权限问题?我没有托管数据库,在联系主机之前我需要知道。再次感谢 – user523129 2011-04-07 11:14:11

回答

10

替代方式,也取架构名称

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

Thaks MadBender,但仍然没有结果,空白页。你认为这个问题可能是数据库权限或类似的东西?我没有托管数据库,托管它的人可能已经忘记了一些东西。再次感谢 – user523129 2011-04-07 10:46:06

+0

是的,这是可能的。尝试使用某些应用程序(如SSMS或SQL Explorer)连接并执行此查询。它可能会给你更详细的错误信息。 – MadBender 2011-04-07 10:58:56

+0

或者也许这个数据库中没有表格 – MadBender 2011-04-07 11:09:01

3
SELECT * FROM sys.Tables; 

应该做的魔力:-D

而且如果u希望看到的所有列,我会做

SELECT TOP 1 * From Tablename; 

所以日子会把你弄一排的所有列,它不是完美的,但它的伎俩如果u只是想知道某事

相关问题