SQL选择数据库中的表列表

gym*_*ode 6 sql sql-server

我正在使用SQL Server 2005.我正在尝试在我的一个数据库中选择一个表列表.这是我的SQL Server结构:

- <IP>(SQL Server 9.0 -userlogin)
   - Databases
      - Company
          - Tables
             - dbo.UserDB
             - dbo.detailsDB
             - dbo.goodsDB
Run Code Online (Sandbox Code Playgroud)

我想检索的值dbo.UserDB,dbo.detailsDB,dbo.goodsDB

但我不知道所需的确切sql查询是什么.

我尝试了很多方法

SELECT * FROM userlogin.Tables;

SELECT * FROM userlogin.Company.Tables;,但没有一个有效.

我看过很多帖子建议使用show databasesshow tables,但它们似乎也没有用.

是否可以首先在数据库中选择表名列表?

感谢您提前提供的任何帮助.


感谢@TomTom提供的MSDNA链接,我现在可以在我的数据库中列出我的表.

但是,我想列出TABLE_NAME包含"user"的特定表.

我该怎么做?我正在尝试以下sql,但它目前没有显示结果:

SELECT DISTINCT TABLE_NAME
FROM Company.INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME LIKE '%"user"%';
GO
Run Code Online (Sandbox Code Playgroud)

小智 7

试试iNFORMATION_SCHEMA.

http://msdn.microsoft.com/en-us/library/ms186778.aspx

它们包含您需要的所有架构信息.


mar*_*c_s 5

使用sysSQL Server 2005及更高版本中的新系统目录:

SELECT Name
FROM sys.tables
WHERE is_ms_shipped = 0   -- only list *your* tables - not the system / MS table
Run Code Online (Sandbox Code Playgroud)

你可以阅读更多有关系统目录视图以及如何查询这些MSDN联机丛书 -和被警告-有很多更多的阅读和学习!