zoukankan      html  css  js  c++  java
  • SqlServer查询出数据库中所有的表及其字段属性

    代码如下所示:

    /*********************************
    SqlServer查询出数据库中所有的表及其字段属性
    *********************************/
    SELECT  ( CASE WHEN a.colorder = 1 THEN d.name
                   ELSE ''
              END ) AS 表名 ,--如果表名相同就返回空  
            a.colorder AS 字段序号 ,
            a.name AS 字段名 ,
            ( CASE WHEN COLUMNPROPERTY(a.id, a.name, 'IsIdentity') = 1 THEN ''
                   ELSE ''
              END ) AS 标识 ,
            ( 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 ) AS 主键 ,--查询主键END  
            b.name AS 类型 ,
            a.length AS 占用字节数 ,
            COLUMNPROPERTY(a.id, a.name, 'PRECISION') AS 长度 ,
            ISNULL(COLUMNPROPERTY(a.id, a.name, 'Scale'), 0) AS 小数位数 ,
            ( CASE WHEN a.isnullable = 1 THEN ''
                   ELSE ''
              END ) AS 允许空 ,
            ISNULL(e.text, '') AS 默认值 ,
            ISNULL(g.[value], '') AS 字段说明
    FROM    syscolumns a
            LEFT JOIN systypes b ON a.xtype = b.xusertype
            INNER JOIN sysobjects d ON a.id = d.id
                                       AND d.xtype = 'U'
                                       AND d.name <> 'dtproperties'
            LEFT JOIN 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 a.id ,
            a.colorder;

    查询结果如下图所示:

  • 相关阅读:
    二进制回复操作
    日志和备份介绍
    mraiadb查
    mraiadb增三删改
    mardb基本操作
    redis搭建主从和多主
    ldd 查看符号找不到
    一个声明指定了多个类型
    word中为选定文本加边框和底纹
    ue配置lua语法高亮
  • 原文地址:https://www.cnblogs.com/qubernet/p/9055508.html
Copyright © 2011-2022 走看看