如何获取数据库中所有表的名称?

时间:2011-06-02 18:24:23

标签: sql sql-server asp-classic sql-server-2000

EDIT2:找到了修复方法!我使用了所需模式的编号而不是名称。以前应该想到的,真的!我认为错误消息可能会更好一些。谢谢你所有的时间!

如何通过asp classic中的sql获取数据库中所有表的名称? 服务器正在运行Windows 2008,iis7.5和microsoft jet。我已经尝试了我可以在互联网上找到的所有查询(和这里),但没有一个有效。

如果我添加;查询运行一组查询同时它给我一个错误,因为语句没有在分号结束。
无法访问master.mdf数据库,因为它的格式未知 sysobjects变量显然不存在 我使用的是mssql 2000格式。 (密度纤维板)
连接是通过经典的asp与Microsoft.Jet.OLEDB.4.0提供程序和ADODB连接/记录集进行的。

How do I get list of all tables in a database using TSQL?
Query to get the names of all tables in SQL Server 2008 Database

编辑: 我发现了两个包含数据库的文件夹。一个在C:\program files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\mssql\binn\templates中,包含master.mdf,mastlog.ldf,model.mdf,modellog.ldf,msdbdata.mdf和msdblog.ldf。另一个也在\binn\template data目录中,包含master.mdf,mastlog.ldf,model.mdf,modellog.ldf,MSDBData.mdf,MSDBLog.ldf,mssqlsystemresource.ldf,mssqlsystemresource.mdf,tempdb.mdf和templog.ldf。也许这些有一些兴趣?

我怎么知道我是否有权限?它是否给出了权限被拒绝的错误?

请帮忙!不,不。阅读顶部的第二个编辑。

4 个答案:

答案 0 :(得分:2)

USE YOUR_DATABASE
GO
SELECT *
FROM sys.Tables
GO 

答案 1 :(得分:1)

您是否尝试过以下示例:

http://www.kamath.com/codelibrary/cl002_listtables.asp

答案 2 :(得分:1)

我几乎总是使用INFORMATION_SCHEMA次观看次数:

SELECT * FROM INFORMATION_SCHEMA.TABLES

如果这对您不起作用,则您的站点运行的SQL用户可能无权访问系统对象。这实际上是一件好事,因为让您的站点访问底层数据库模式会让您容易受到SQL注入的攻击。<​​/ p>

因此,如果您选择这条路线,请谨慎行事。

答案 3 :(得分:0)

mdf本身是没用的:你需要一个数据库引擎(也就是一个SQL Server实例)来“运行”它。据我所知,这是你的问题。

然后您可以在数据库中使用sysobjects:除非您已将表添加到master数据库

没有直接使用mdf的实用方法:如果没有其他内容下载MSDE