加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SqlServer查询出数据库中所有的表及其字段属性

发布时间:2020-12-12 13:52:40 所属栏目:MsSql教程 来源:网络整理
导读:代码如下所示: /* ********************************SqlServer查询出数据库中所有的表及其字段属性******************************** */ SELECT ( CASE WHEN a.colorder = 1 THEN d.name ELSE ‘‘ END ) AS 表名, -- 如果表名相同就返回空 a.colorder AS

代码如下所示:

/*********************************
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,PRECISION) AS 长度,ISNULL(COLUMNPROPERTY(a.id,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;

?

查询结果如下图所示:

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读