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


#1楼

select * from sys.tables;

要么

SELECT * FROM INFORMATION_SCHEMA.TABLES

要么

SELECT * FROM sysobjects WHERE xtype='U'

#2楼

exec sp_msforeachtable 'print ''?'''

#3楼

select * from sysobjects where xtype='U'


#4楼

SELECT name
FROM sysobjects
WHERE xtype='U'
ORDER BY name;

(SQL Server 2000标准; SQL Server 2005仍支持。)


#5楼

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

#6楼

SELECT * FROM INFORMATION_SCHEMA.TABLES

要么

SELECT * FROM Sys.Tables

#7楼

SQL Server 2005、2008、2012、2014、2016、2017或2019:

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'

#8楼

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

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

  • AF:汇总功能(CLR)
  • C:检查约束
  • D:默认或默认约束
  • F:外键约束
  • 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:扩展存储过程

#9楼

SELECT * FROM information_schema.tables
where TABLE_TYPE = 'BASE TABLE'

SQL Server 2012


#10楼

USE YourDBName
GO
SELECT *
FROM sys.Tables
GO

要么

USE YourDBName
GO
SELECT * FROM INFORMATION_SCHEMA.TABLES
GO

#11楼

您只需先选择数据库

use database_name;

然后输入

show tables;

#12楼

--for oracle
select tablespace_name, table_name from all_tables;

该链接可以提供有关此主题的更多信息。


#13楼

SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE='BASE TABLE'
ORDER BY TABLE_NAME

#14楼

感谢Ray Vega,他的响应为数据库中的所有用户表提供了...

exec sp_msforeachtable'打印``?'''

sp_helptext显示基础查询,总结为...

select * from dbo.sysobjects o
join sys.all_objects syso on o.id =  syso.object_id
where OBJECTPROPERTY(o.id, 'IsUserTable') = 1
and o.category & 2 = 0

#15楼

INFORMATION_SCHEMA.TABLES的缺点在于,它还包含系统表(例如dtpropertiesMSpeer_...表),除了您自己的表之外,无法区分它们。

我建议使用sys.objects (不推荐使用的sysobjects视图的新版本),它确实支持排除系统表:

select *
from sys.objects
where type = 'U'      -- User tables
and is_ms_shipped = 0 -- Exclude system tables

#16楼

在SSMS中,要获取特定数据库(例如,“ MyDatabase”)中的所有标准表名:

SELECT [TABLE_CATALOG] + '.' + [TABLE_SCHEMA] + '.' + [TABLE_NAME]
FROM   MyDatabase.INFORMATION_SCHEMA.Tables
WHERE  [TABLE_TYPE] = 'BASE TABLE' and [TABLE_NAME] <> 'sysdiagrams'
ORDER BY [TABLE_SCHEMA], [TABLE_NAME]

结果:

  • MyDatabase.dbo.MyTable1
  • MyDatabase.dbo.MyTable2
  • MyDatabase.MySchema.MyTable3
  • MyDatabase.MySchema.MyTable4
  • 等等

#17楼

请使用这个。 您将获得表名和模式名:

SELECT SYSSCHEMA.NAME, SYSTABLE.NAME
FROM SYS.tables SYSTABLE
INNER JOIN SYS.SCHEMAS SYSSCHEMA
ON SYSTABLE.SCHEMA_ID = SYSSCHEMA.SCHEMA_ID

#18楼

使用SELECT * FROM INFORMATION_SCHEMA.COLUMNS还会显示所有表和相关列。


#19楼

to get all database objects. 好了,您可以使用来获取所有数据库对象。

 GOselect * from sys.objects where type_desc='USER_TABLE' order by nameGO

要么

--  For all tables
select * from INFORMATION_SCHEMA.TABLES
GO --- For user defined tables
select * from INFORMATION_SCHEMA.TABLES where TABLE_TYPE='BASE TABLE'
GO--- For Views
select * from INFORMATION_SCHEMA.TABLES where TABLE_TYPE='VIEW'
GO

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

  1. server sql 数据总行数_SqlServer中获取数据库中每个表的行数

    CREATE TABLE #RowCounts(NumberOfRows BIGINT,TableName VARCHAR(128)) EXEC sp_MSForEachTable 'INSERT I ...

  2. 不同数据库中获得表名列表的SQL(继续偷冰血)

    这个<不同数据库中获得表名列表的SQL >转载自高手温少的blog.感谢他的总结:) 引用: 记得大学那时刚学SQL Server,还为这个问题困惑过.今天偶然看到一篇网友的文章,涉及到这 ...

  3. vb读取mysql多表,vb获取数据库中所有表的名称

    以下是 OpenSchema 方法的三个参数: 一个枚举的值,指定所需的架构类型.示例包括 adSchemaTables. adSchemaPrimaryKeys. adSchemaColumns. ...

  4. java 获取oracle表结构_获取Oracle中所有表的列表?

    回答(19) 2 years ago 我们可以从以下查询获取所有表格,包括列详细信息: SELECT * FROM user_tab_columns; 2 years ago 使用sqlplus更好地 ...

  5. Atitit. 数据库-----catalog与schema的设计区别以及在实际中使用 获取数据库所有库表 java jdbc php  c#.Net...

    Atitit. 数据库-----catalog与schema的设计区别以及在实际中使用 获取数据库所有库表 java jdbc php  c#.Net 1. -catalog与schema的设计区别1 ...

  6. 获取SQLServer数据库中所有表

    对于获取SQLSERVER数据库中所有表,首先第一步引有SQLDMO.dll 找到文件路径: C:\Program   Files\Microsoft   SQL   Server\80\Tools\ ...

  7. 如何从Oracle数据库中的表中获取列名(字段名)列表?

    如何从Oracle数据库中的表中获取列名(字段名)列表? 目录 如何从Oracle数据库中的表中获取列名(字段名)列表? #示例一 #示例二 示例三: #示例一 可以获取: table_name:表名 ...

  8. java获取表主外键_通过 jdbc 分析数据库中的表结构和主键外键

    文章转自:http://ivan4126.blog.163.com/blog/static/20949109220137753214811/ 在某项目中用到了 hibernate ,大家都知道 hib ...

  9. jdbc获取数据库元数据,获取数据库列表,获取数据库基本信息,获取指定数据库中的表信息,获取指定表中的字段信息

    jdbc获取数据库元数据 package cn.itcast.metadata.test;import org.junit.Before; import org.junit.Test;import j ...

最新文章

  1. MySQL数据模型图导出ddl脚本_DB2中导出数据库的所有DDL脚本.
  2. linuxmysql乱码
  3. yum安装apache及问题解决
  4. 工作31:传参对接口
  5. IIS 启动不了(服务没有及时响应启动或控制请求)解决
  6. 微信扫码下载iosAPP
  7. MyEclipse打开闪退
  8. Chapter 1. Asp.Net 概述
  9. linux 常见压缩归档命令
  10. Hyper-V 2016 系列教程56 SCVMM 2016 Client的安装
  11. HUAWEI 机试题:VLAN资源池
  12. java fifo lifo_别以为你很懂仓库FEFO 、 LIFO 、FIFO
  13. Ansys workbench静应力分析基本流程
  14. 精益创业实战 - 内容简介
  15. VS2008 Pocket PC 2003 SE仿真程序上网设置
  16. tcp 握手失败_TCP三次握手四次挥手总结(流程、常见问题、会发生的攻击、防范方法)...
  17. 【Unity】Obi插件系列(三)—— Collisions
  18. 第 2-4 课:表格组件详解(Table 和 Data Tables)
  19. FLAC3D模拟:复杂模型的建立与导入
  20. Python数据标准化

热门文章

  1. 数组实现栈,实现push,pop,size方法 -- 面试算法
  2. Android ANR 分析
  3. android 文件下载 超简单
  4. Telnet不是内部或外部命令解决办法
  5. 箭头函数中的this
  6. eclipse svn 与资源库同步 符号说明
  7. python中矩阵拼接_numpy实现合并多维矩阵、list的扩展方法
  8. git merge 回退_Git项目开发必备命令
  9. mybatis mapper xml文件的导入方式和查询方式
  10. PTA 03-树1 树的同构 (25分)