如何使用TSQL获取数据库中所有表的列表?
在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
的缺点在于,它还包含系统表(例如dtproperties
和MSpeer_...
表),除了您自己的表之外,无法区分它们。
我建议使用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获取数据库中所有表的列表?相关推荐
- server sql 数据总行数_SqlServer中获取数据库中每个表的行数
CREATE TABLE #RowCounts(NumberOfRows BIGINT,TableName VARCHAR(128)) EXEC sp_MSForEachTable 'INSERT I ...
- 不同数据库中获得表名列表的SQL(继续偷冰血)
这个<不同数据库中获得表名列表的SQL >转载自高手温少的blog.感谢他的总结:) 引用: 记得大学那时刚学SQL Server,还为这个问题困惑过.今天偶然看到一篇网友的文章,涉及到这 ...
- vb读取mysql多表,vb获取数据库中所有表的名称
以下是 OpenSchema 方法的三个参数: 一个枚举的值,指定所需的架构类型.示例包括 adSchemaTables. adSchemaPrimaryKeys. adSchemaColumns. ...
- java 获取oracle表结构_获取Oracle中所有表的列表?
回答(19) 2 years ago 我们可以从以下查询获取所有表格,包括列详细信息: SELECT * FROM user_tab_columns; 2 years ago 使用sqlplus更好地 ...
- Atitit. 数据库-----catalog与schema的设计区别以及在实际中使用 获取数据库所有库表 java jdbc php c#.Net...
Atitit. 数据库-----catalog与schema的设计区别以及在实际中使用 获取数据库所有库表 java jdbc php c#.Net 1. -catalog与schema的设计区别1 ...
- 获取SQLServer数据库中所有表
对于获取SQLSERVER数据库中所有表,首先第一步引有SQLDMO.dll 找到文件路径: C:\Program Files\Microsoft SQL Server\80\Tools\ ...
- 如何从Oracle数据库中的表中获取列名(字段名)列表?
如何从Oracle数据库中的表中获取列名(字段名)列表? 目录 如何从Oracle数据库中的表中获取列名(字段名)列表? #示例一 #示例二 示例三: #示例一 可以获取: table_name:表名 ...
- java获取表主外键_通过 jdbc 分析数据库中的表结构和主键外键
文章转自:http://ivan4126.blog.163.com/blog/static/20949109220137753214811/ 在某项目中用到了 hibernate ,大家都知道 hib ...
- jdbc获取数据库元数据,获取数据库列表,获取数据库基本信息,获取指定数据库中的表信息,获取指定表中的字段信息
jdbc获取数据库元数据 package cn.itcast.metadata.test;import org.junit.Before; import org.junit.Test;import j ...
最新文章
- MySQL数据模型图导出ddl脚本_DB2中导出数据库的所有DDL脚本.
- linuxmysql乱码
- yum安装apache及问题解决
- 工作31:传参对接口
- IIS 启动不了(服务没有及时响应启动或控制请求)解决
- 微信扫码下载iosAPP
- MyEclipse打开闪退
- Chapter 1. Asp.Net 概述
- linux 常见压缩归档命令
- Hyper-V 2016 系列教程56 SCVMM 2016 Client的安装
- HUAWEI 机试题:VLAN资源池
- java fifo lifo_别以为你很懂仓库FEFO 、 LIFO 、FIFO
- Ansys workbench静应力分析基本流程
- 精益创业实战 - 内容简介
- VS2008 Pocket PC 2003 SE仿真程序上网设置
- tcp 握手失败_TCP三次握手四次挥手总结(流程、常见问题、会发生的攻击、防范方法)...
- 【Unity】Obi插件系列(三)—— Collisions
- 第 2-4 课:表格组件详解(Table 和 Data Tables)
- FLAC3D模拟:复杂模型的建立与导入
- Python数据标准化