SQLServer如何用T—SQL命令查询一个数据库中有哪些表

 我来答
KDERP
2018-08-01 · 知道合伙人软件行家
KDERP
知道合伙人软件行家
采纳数:266 获赞数:698
2016-2017荣获 金达软件(广州) 最佳项目负责人

向TA提问 私信TA
展开全部

所有用户表都存放在数据库中的系统对象表sysobjects中。

笔者以个人专用数据库为例:

select * 

from sysobjects      --系统对象表

where xtype = 'U'    --U表示所有用户表

执行后影响的行数为180(rows),如下图:

补充说明:另两个与之相关的系统对象表为(附下图)

1)syscolumns :数据表列名清单表;

2)systypes:各列数据类型表。

badkano
2015-09-27 · 知道合伙人体育行家
badkano
知道合伙人体育行家
采纳数:144777 获赞数:885359
团长

向TA提问 私信TA
展开全部

可用如下方法:

以sqlserver2008r2为例,可以从系统表中sys.objects来取字段。

1、打开SQL Server Managment Studio,并登陆到指定数据库。

2、新建一个查询窗口。

3、使用如下语句:

select name from sys.objects where type='U';

查询结果:

其中name列的内容就是当前登陆用户下的所有表名。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
诺JECA
2013-08-25 · 超过61用户采纳过TA的回答
知道答主
回答量:119
采纳率:100%
帮助的人:113万
展开全部
1、查询SQL中的所有表: Select TABLE_NAME FROM 数据库名称.INFORMATION_SCHEMA.TABLES Where TABLE_TYPE='BASE TABLE' 执行之后,就可以看到数据库中所有属于自己建的表的名称 2、查询SQL中所有表及列: Select dbo.sysobjects.name as Table_name, dbo.syscolumns.name AS Column_name FROM dbo.syscolumns INNER JOIN dbo.sysobjects ON dbo.syscolumns.id = dbo.sysobjects.id Where (dbo.sysobjects.xtype = 'u') AND (NOT (dbo.sysobjects.name LIKE 'dtproperties')) 3、在Sql查询分析器,还有一个简单的查询方法: EXEC sp_MSforeachtable @command1="sp_spaceused '?'" 执行完之后,就可以看到数据库中所有用户表的信息 4、查询总存储过程数:select count(*) 总存储过程数 from sysobjects where xtype='p' 附:xtype类型D = 默认值或 DEFAULT 约束 F = FOREIGN KEY 约束L = 日志FN = 标量函数 IF = 内嵌表函数 P = 存储过程 PK = PRIMARY KEY 约束(类型是 K) RF = 复制筛选存储过程S = 系统表TF = 表函数 TR = 触发器U = 用户表UQ = UNIQUE 约束(类型是 K)V = 视图X = 扩展存储过程 另:在sqlserver中取得某个数据库中所有表名的sql语句 select sysobjects.name from sysobjects.xtype ='U';SELECT name WHERE (xtype = 'U') 在数据库的sysobjects表里有这个数据库全部表的信息, xtype值为'U'的就是表名 注意:一般通过上述方法获得全部用户表示都会有一个dtproperties表,SQLSERVER 默认它也是用户表,想要从用户表中排出,需要加上限定条件 status>0,即:select * from sysobjects where xtype='U' and status>0
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式