使用SQL语句查询表及表字段类型说明

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

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

SELECT  ( CASE WHEN a.colorder = 1 THEN d.name
               ELSE ‘‘
          END ) N‘表名‘ ,
        ( CASE WHEN a.colorder = 1
               THEN ISNULL(( SELECT TOP 1 value FROM   sys.extended_properties WHERE  major_id = OBJECT_ID(d.name) ), ‘‘)
               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
ORDER BY OBJECT_NAME(a.id) ,
        a.colorder;

  

原文地址:https://www.cnblogs.com/wsk198726/p/10730361.html

时间: 2024-10-12 21:39:45

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

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

select b.name,a.name,c.name,a.xprec,a.xscalefrom  syscolumns aleft outer join sysobjects b ON a.id=b.id left outer join systypes c ON c.xusertype=a.xusertype where b.xtype='U' AND b.name LIKE '%CRM_PS%' AND (select systypes.name+'('+cast(a.length/2 

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

查询表修改表字段没反应 要是使用gui 没反应,最好使用cmd 方式,不卉不个gui 锁上.. ALTER TABLE t_mb_awardweixin  MODIFY  awardChoiceNumLeft int(11) DEFAULT NULL #-----分析.. 1.首先,查询by另一个表格,  要是能查询,显示不是max conn的问题..也许表格锁定了.. 2. show full PROCESSLIST  要是看到个Waiting for table metadata lock

MySQL建表字段类型

1.数据库:在MySQL中,要存储数据,必须从数据库开始,因此首先要创建数据库,但由于学校的MySQL服务器对学生数据帐号有限止,学生不得创建数据库,故每个学生的帐号中已事先由信息中心为大家建立了一个名为帐号名的数据库.但我们必须了解创建数据库的语句为CREATE DATABASE <数据库名>2.数据表:是构成数据库的一个基本单位,在一个数据库中用户可以建立多张数据表.这是我们有权力建立的.3.数据表结构:创建一个数据表的第一步即为创建数据表结构,在数据表结构中的内容包括:有几个字段,每个字

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

http://www.cnblogs.com/hnyei/archive/2012/02/23/2364812.html 创建一张空表: Sql="Create TABLE [表名]" 创建一张有字段的表: Sql="Create TABLE [表名]([字段名1] MEMO NOT NULL, [字段名2] MEMO, [字段名3] COUNTER NOT NULL, [字段名4] DATETIME, [字段名5] TEXT(200), [字段名6] TEXT(200))

修改非空表字段类型Oracle

执行以下语句报"要修改数据类型,则要更改的列必须为空"       alter table 表名 modify (目标字段 varchar2(100)); 解决步骤: 第一步,在表中加一个临时字段       alter table 表名 add 临时字段 目标字段原来的类型; 第二步,将目标字段的值付给临时字段,并将目标字段置空       update 表名 set 临时字段=目标字段,目标字段=null; 第三步,修改目标类型       alter table 表名  modi

SQL语句查询表结构

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

资源表 表字段类型大全

在我们对资源表进行操作也就是,添加表时JEPLUS平台会自动给我们默认的提供了表字段的类型,今天我来详细介绍下表字段类型大全,以及对应数据库到底是什么类型. 一.效果展示 二.准备工作 1.JEPLUS平台5.0.0.2(我是刚升级之后的版本,5.0以上的版本都是可以实现这个功能) 2.数据库MySql 5.7 三.实现步骤 1.数据库建表时的类型对应,我们在平台上创建的表字段选择的类型对应的数据库类型是什么. 我们对应到数据库的真实类型是什么 2.当我们选择的类型为整数时对应的数据库类型 在数

资源表 表字段类型大全—JEPLUS快速开发平台

在我们对资源表进行操作也就是,添加表时JEPLUS平台会自动给我们默认的提供了表字段的类型,今天我来详细介绍下表字段类型大全,以及对应数据库到底是什么类型. 一.效果展示 二.准备工作 1.JEPLUS平台5.0.0.2(我是刚升级之后的版本,5.0以上的版本都是可以实现这个功能) 2.数据库MySql 5.7 三.实现步骤 1.数据库建表时的类型对应,我们在平台上创建的表字段选择的类型对应的数据库类型是什么. 我们对应到数据库的真实类型是什么 2.当我们选择的类型为整数时对应的数据库类型 在数

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

创建一张空表: Sql="Create TABLE [表名]" 创建一张有字段的表: Sql="Create TABLE [表名]([字段名1] MEMO NOT NULL, [字段名2] MEMO, [字段名3] COUNTER NOT NULL, [字段名4] DATETIME, [字段名5] TEXT(200), [字段名6] TEXT(200)) 字段类型: 2 : "SmallInt",                 // 整型    3 :