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。也许这些有一些兴趣?
我怎么知道我是否有权限?它是否给出了权限被拒绝的错误?
请帮忙!不,不。阅读顶部的第二个编辑。
答案 0 :(得分:2)
USE YOUR_DATABASE
GO
SELECT *
FROM sys.Tables
GO
答案 1 :(得分:1)
答案 2 :(得分:1)
我几乎总是使用INFORMATION_SCHEMA
次观看次数:
SELECT * FROM INFORMATION_SCHEMA.TABLES
如果这对您不起作用,则您的站点运行的SQL用户可能无权访问系统对象。这实际上是一件好事,因为让您的站点访问底层数据库模式会让您容易受到SQL注入的攻击。</ p>
因此,如果您选择这条路线,请谨慎行事。
答案 3 :(得分:0)
mdf本身是没用的:你需要一个数据库引擎(也就是一个SQL Server实例)来“运行”它。据我所知,这是你的问题。
然后您可以在数据库中使用sysobjects:除非您已将表添加到master数据库
没有直接使用mdf的实用方法:如果没有其他内容下载MSDE