【问题标题】:How do i get the names of all the tables inside a database?如何获取数据库中所有表的名称?
【发布时间】:2011-09-07 07:12:39
【问题描述】:

EDIT2:找到了解决办法!我使用了所需架构的编号而不是名称。早该想到的,真的!而且我认为错误消息也可能会更好一些。感谢您的所有时间!

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

如果我添加一个 ;到查询同时运行一组查询它给了我一个错误,因为该语句没有在分号处结束。
无法访问 master.mdf 数据库,因为它的格式未知。
sysobjects 变量显然不存在。
我使用的是 mssql 2000 格式。 (.mdf)
通过经典的 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。也许这些有点兴趣?

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

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

【问题讨论】:

  • 您有权限查看系统架构吗?
  • 这里在黑暗中拍摄,但 DESCRIBE databaseName 有效吗?
  • 根本不适合 SQL Server...
  • @gbn:嗯嗯——就像我说的,在黑暗中拍摄。

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


【解决方案1】:

您是否尝试过以下示例:

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

【讨论】:

  • 我不能使用DNS=Library,而我通常使用的提供商不支持它并给我ADODB.Connection error '800a0cb3'
【解决方案2】:
USE YOUR_DATABASE
GO
SELECT *
FROM sys.Tables
GO 

【讨论】:

  • 不完全确定,如果没有 SQL Server 2000 的副本就无法验证它,但之前我认为sys.* 对象是随 SQL Server 2005 引入的,而在 SQL Server 2000 中,您会使用像 @ 这样的名称987654323@、sysobjects 等。但正如我所说,我不确定。
  • 运行,但找不到C:\Windows\SysWOW64\inetsrv\sys.mdb:/
【解决方案3】:

我几乎总是使用INFORMATION_SCHEMA 视图:

SELECT * FROM INFORMATION_SCHEMA.TABLES

如果这对您不起作用,则您的网站所使用的 SQL 用户可能无法访问系统对象。这实际上是一件好事,因为让您的站点访问底层数据库架构可能会使您容易受到 SQL 注入的攻击。

所以如果你真的走这条路,请谨慎行事。

【讨论】:

  • 抛出错误:could not find C:\Windows\SysWOW64\inetsrv\INFORMATION_SCHEMA.mdb
【解决方案4】:

mdf 本身是无用的:您需要一个数据库引擎(又名 SQL Server 实例)来“运行”它。据我了解,这是您的问题。

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

没有直接使用mdf的实用方法:如果没有别的下载MSDE

【讨论】:

  • 我可以通过 asp 访问数据库,我知道表名,如果这就是你的意思的话。
猜你喜欢
  • 2011-02-17
  • 2011-02-16
  • 2011-11-17
  • 2012-12-27
  • 1970-01-01
  • 1970-01-01
  • 2013-03-01
  • 2011-04-30
  • 2016-05-13
相关资源
最近更新 更多