SQL语句查询表结构

Posted 一个大西瓜

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL语句查询表结构相关的知识,希望对你有一定的参考价值。

刚刚在做一个小项目,数据库中一张表有20来个字段,用我以前做的一个.NET实体类生成器一个一个的输入还是闲麻烦,于是打算找个时间来重新的改造一个那个.NET实体类,能够通过选择的数据库及用户表自动生成实体类,而且该实体类还有注释,即字段的说明字段,然后再加一个功能,生成数据库文档,其实也就是把字段字,类型,字段说明输出一个漂亮的表格而已,只要能获取出来生成html表格就比较容易了,上网找了一下,得到如下有用的SQL语句: 

 

-- 查询非系统数据库
Select name FROM Master.. SysDatabases where dbid>4

-- 选择water数据库下的所有表
use [water] SELECT name FROM sysobjects WHERE xtype = U Or xtype = S

-- 选择water数据库下的所有用户表
use [water] SELECT name FROM sysobjects WHERE xtype = U AND OBJECTPROPERTY (id, IsMSShipped) = 0

-- 查询water数据库下的admin表的字段名,长度,类型,字段说明
use [water] SELECT a.[name] as 字段名,a.length 长度,c.[name] 类型,e.value as 字段说明 FROM syscolumns  a 
left   join    systypes    b   on      a.xusertype=b.xusertype 
left     join     systypes     c     on      a.xtype = c.xusertype 
inner   join   sysobjects  d   on      a.id=d.id     and   d.xtype=U 
left join sys.extended_properties e on a.id = e.major_id and a.colid = e.minor_id and e.name=MS_Description
where d.name=admin 

 

  

其中sys.extended_properties系统内置视图用于存储字段说明,且只有在MSSQL2005以上才有这张表的,且前面的sys.不能去掉,SQL2000的话字段说明是存在另一个张表里的,表名忘记了,反正我不需要也懒得去查了...
特此记录!!! 


以上是关于SQL语句查询表结构的主要内容,如果未能解决你的问题,请参考以下文章

程序中使用嵌套的sql语句和在数据库中写存储过程调用它,有啥区别?

sql语句 嵌套查询 排序

.NET Entity Framework(EF)使用SqlQuery直接操作SQL查询语句或者执行过程

SQL Select 语句的用法

sql嵌套删除语句

MyBatis高级特性