如何获得数据库里所有表的名字(SQL+C#)

如何获得数据库里所有表的名字

平时我们操作比较多的都是表里的数据,也许突然有一天会需要把所有表的名字都列出来看一看——比如,你的论坛是按每个版块一个表来管理的,这时候你要在首页列出各版块的名字。应该怎么办呢?

肯定得用SELECT吧……但我们平时使用SELECT操作的数据都是表里的数据,表的名字并不是表的数据,这可怎么办呢?

你可能会想:“功能强大的SQL Server不会连这么简单的功能都实现不了吧?一定会把所有表的名字存储在某个表里……”注意啦!在这儿我要小小地偷换一下概念了——视图(View)也算是一种“表”,只不过它是由固定查询形成的一种“虚拟表”。

OK,你猜对啦!由SQL Server管理的每个数据库里都有一个名为sysobjects的视图,它是system级别的,所以它的全限定名是——sys.sysobjects

你可能又会问:“为什么不是sys.tables而是sys.objects呢?”问的好!因为这张表里存储的可不光是数据库里的表,它存储的是一个数据库中所有的“对象”——杂七杂八包括了表的主键、存储过程、触发器等等,一共是24种——表(Table,确切地说是“用户自定义表”)只是这24种对象中的一种。

剩下的事情……吼吼……

执行下面的查询语句,可以得到所有包含在sys.sysobjects视图里的数据

USE  AdventureWorks
SELECT   *
FROM  sys.sysobjects
GO

得出数据后,请注意名为type的列——这一列标明了对象的类型,也就是前面提到的24种。在这里,我用一个表格把它们列出来:

AF = Aggregate function (CLR)
C = CHECK constraint
  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 16
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值