协慌网

登录 贡献 社区

如何使用 TSQL 获取数据库中所有表的列表?

获取 SQL Server 上特定数据库中所有表的名称的最佳方法是什么?

答案

SQL Server 2005,2008,2012,2014 或 2016:

SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE='BASE TABLE'

仅显示特定数据库中的表

SELECT TABLE_NAME 
FROM <DATABASE_NAME>.INFORMATION_SCHEMA.TABLES 
WHERE TABLE_TYPE = 'BASE TABLE'

要么,

SELECT TABLE_NAME 
FROM INFORMATION_SCHEMA.TABLES 
WHERE TABLE_TYPE = 'BASE TABLE' 
    AND TABLE_CATALOG='dbName' --(for MySql, use: TABLE_SCHEMA='dbName' )

PS:对于 SQL Server 2000:

SELECT * FROM sysobjects WHERE xtype='U'
SELECT sobjects.name
FROM sysobjects sobjects
WHERE sobjects.xtype = 'U'

以下是您可以搜索的其他对象类型的列表:

  • AF:聚合函数(CLR)
  • C:CHECK 约束
  • D:默认或 DEFAULT 约束
  • F:FOREIGN KEY 约束
  • L:记录
  • FN:标量函数
  • FS:汇编(CLR)标量函数
  • FT:汇编(CLR)表值函数
  • IF:内联表功能
  • IT:内部表格
  • P:存储过程
  • PC:汇编(CLR)存储过程
  • PK:PRIMARY KEY 约束(类型为 K)
  • RF:复制过滤器存储过程
  • S:系统表
  • SN:同义词
  • SQ:服务队列
  • TA:汇编(CLR)DML 触发器
  • TF:表函数
  • TR:SQL DML 触发器
  • TT:表类型
  • U:用户表
  • UQ:UNIQUE 约束(类型为 K)
  • V:查看
  • X:扩展存储过程
SELECT * FROM INFORMATION_SCHEMA.TABLES

要么

SELECT * FROM Sys.Tables