今天突然遇到有人要数据库表及表字段说明,数据库表太多又不能一个个表去找,就想想SQL是否能直接查询出来。

经过查询资料,加上一些自己的一些调整写了一个sql语句,在此记录一下,以方便日后查找使用。

SELECT  ( CASE WHEN a.colorder = 1 THEN d.name
ELSE ''
END ) N'表名' ,
( CASE WHEN a.colorder = 1 THEN ISNULL(h.value, '')
ELSE ''
END ) N'表说明' ,
a.colorder N'字段序号' ,
a.name N'字段名' ,
( CASE WHEN COLUMNPROPERTY(a.id, a.name, 'IsIdentity') = 1 THEN '√'
ELSE ''
END ) N'标识' ,
( CASE WHEN ( SELECT COUNT(*)
FROM sysobjects
WHERE name IN (
SELECT name
FROM sysindexes
WHERE id = a.id
AND indid IN (
SELECT indid
FROM sysindexkeys
WHERE id = a.id
AND colid IN (
SELECT colid
FROM syscolumns
WHERE id = a.id
AND name = a.name ) ) )
AND xtype = 'PK'
) > 0 THEN '√'
ELSE ''
END ) N'主键' ,
b.name N'类型' ,
a.length N'占用字节数' ,
COLUMNPROPERTY(a.id, a.name, 'PRECISION') AS N'长度' ,
ISNULL(COLUMNPROPERTY(a.id, a.name, 'Scale'), 0) AS N'小数位数' ,
( CASE WHEN a.isnullable = 1 THEN '√'
ELSE ''
END ) N'允许空' ,
ISNULL(e.text, '') N'默认值' ,
ISNULL(g.[value], '') AS N'字段说明'
FROM sys.syscolumns a
LEFT JOIN sys.systypes b ON a.xtype = b.xusertype
INNER JOIN sys.sysobjects d ON a.id = d.id
AND d.xtype = 'U'
AND d.name <> 'dtproperties'
LEFT JOIN sys.syscomments e ON a.cdefault = e.id
LEFT JOIN sys.extended_properties g ON a.id = g.major_id
AND a.colid = g.minor_id
--AND g.name='MS_Description'
LEFT JOIN sys.extended_properties h ON h.major_id = a.id
AND h.minor_id = 0
AND h.name = 'MS_Description' --表扩展属性 名称
ORDER BY OBJECT_NAME(a.id) ,
a.colorder;

补充一些表及表及字段描述增删改SQL操作语句:

--表(Department)

/******添加********/
--为表添加描述信息
execute sys.sp_addextendedproperty N'MS_Description',N'部门表',N'Schema',N'dbo',N'table',N'Department',null,null
go
--为字段添加描述信息
execute sys.sp_addextendedproperty N'MS_Description',N'部门表ID',N'Schema',N'dbo',N'table',N'Department',N'column',N'D_Remark'
go
/******添加********/ /******修改********/
--把表 Department 的扩展属性(表的描述)原值 ‘部门表’改为 ‘部门表测试修改’
execute sp_updateextendedproperty N'MS_Description',N'部门表测试修改',N'Schema',N'dbo',N'table',N'Department',null,null --把表 Department 的列 D_Remark 的扩展属性(列的描述)原值 ‘部门描述’改为 ‘部门详细描述’
execute sp_updateextendedproperty N'MS_Description',N'部门详细描述',N'Schema',N'dbo',N'table',N'Department',N'column',N'D_Remark'
/******修改********/ /******删除********/
--删除表 Department 的扩展属性(表的描述)
execute sp_dropextendedproperty N'MS_Description',N'Schema',N'dbo',N'table',N'Department',null,null --删除表 Department 的列 D_Remark 的扩展属性(列的描述)
execute sp_dropextendedproperty N'MS_Description',N'Schema',N'dbo',N'table',N'Department',N'column',N'D_Remark'
/******删除********/

  

使用SQL语句查询表及表字段类型说明的更多相关文章

  1. MSSQL 如何采用sql语句 获取建表字段说明、字段备注、字段类型、字段长度

    转自: http://www.maomao365.com/?p=4983 <span style="color:red;font-weight:bold;">下文讲述- ...

  2. SQL Server查询数据库表字段类型

    select b.name,a.name,c.name,a.xprec,a.xscalefrom  syscolumns aleft outer join sysobjects b ON a.id=b ...

  3. atitit查询表修改表字段没反应--解锁锁定的表

    atitit查询表修改表字段没反应--解锁锁定的表 查询表修改表字段没反应 要是使用gui 没反应,最好使用cmd 方式,不卉不个gui 锁上.. ALTER TABLE t_mb_awardweix ...

  4. atitit查询表改动表字段没反应--解锁锁定的表

    atitit查询表改动表字段没反应--解锁锁定的表 查询表改动表字段没反应 要是使用gui 没反应,最好使用cmd 方式,不卉不个gui 锁上.. ALTER TABLE t_mb_awardweix ...

  5. SQL语句查询表结构

    SQL语句查询表结构   刚刚在做一个小项目,数据库中一张表有20来个字段,用我以前做的一个.NET实体类生成器一个一个的输入还是闲麻烦,于是打算找个时间来重新的改造一个那个.NET实体类,能够通过选 ...

  6. Oracle sql语句中不支持boolean类型(decode&case)

    [转自] http://blog.csdn.net/t0nsha/article/details/7828538 Oracle sql语句中不支持boolean类型(decode&case) ...

  7. Access sql语句创建表及字段类型

    创建一张空表: Sql="Create TABLE [表名]" 创建一张有字段的表: Sql="Create TABLE [表名]([字段名1] MEMO NOT NUL ...

  8. SQL语句 & 查询表结构

    [group by] 对结果集进行分组,常与汇总函数一起使用. SELECT column,SUM(column) FROM table GROUP BY column HAVING 通常与 GROU ...

  9. Access sql语句创建表及字段类型(转)

    http://www.cnblogs.com/hnyei/archive/2012/02/23/2364812.html 创建一张空表: Sql="Create TABLE [表名]&quo ...

随机推荐

  1. quartz.properties完整版

    我们通常是通过quartz.properties属性配置文件(默认情况下均使用该文件)结合StdSchedulerFactory 来使用Quartz的.StdSchedulerFactory 会加载属 ...

  2. js实现输入某串数字,构建完全二叉树,并判断是否为二叉搜索树

    思路:若为二叉搜索树,则中序遍历为递增的 let arr = [15,8,16,6,10];let pindex = [];function Node(){ this.root = null; thi ...

  3. vscode中使用markdown(转)

    vscode 是微软推出一款轻量级的文本编辑工具,类似于sublime,由于其拥有丰富的插件,安装使用也非常简单,所以深受广大程序员的喜爱. markdown 是一种可以使用普通文本编辑器编写的标记语 ...

  4. Window中的Docker 拉取Mysql镜像 并在本地Navicate链接

    首先本地   拉取mysql镜像 以下是所有mysql镜像 我自己下载的为5.6   下面 以5.6为例:(拉取mysql5.6镜像) docker pull mysql:5.6 创建一个容器 doc ...

  5. Android 开发 启动activity并且将前面activity全部清空

    方法一: Intent intent = new Intent(A.this,B.class); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | I ...

  6. OOP AOP

    OOP 一切皆对象,,,对象交互---功能,,,功能叠加---模块,,,模块叠加----系统 AOP   面向切面, 业务逻辑外,添加公共逻辑,增加日志功能,权限控制功能,缓存处理,异常处理,事务,性 ...

  7. 【转】【JAVA资料免费下载】158个JAVA免豆精品资料汇总——下载目录

    附件完整版下载地址: http://down.51cto.com/data/431561 附件部分预览~ java中国移动收费系统[源代码] http://down.51cto.com/data/70 ...

  8. Activiti 框架学习

    1:工作流的概念 说明: 1)      假设:这两张图就是华谊兄弟的请假流程图 2)      图的组成部分: 人物:范冰冰 冯小刚 王中军 事件(动作):请假.批准.不批准 工作流(Workflo ...

  9. react组建生命周期

    实例化 首次实例化 getDefaultProps   //创建默认 props getInitialState     //创建 默认的State componentWillMount   //在装 ...

  10. bootstrap之bootstrap-table插件使用心得以及实现过程

    1.首先一个页面(增删改查) 2.实现增删改查(一个框架) 3.编码问题(前端meta utf-8:引用中文包:contentType参数区utf-8的设置:响应的utf-8的编码设置) 4.多条件查 ...