我正在使用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 databases和show 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)
使用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联机丛书 -和被警告-有很多更多的阅读和学习!