sql server 2008 查询表的字段以及字段的描述

查询某一个表的字段以及字段的描述:

select a.name tabname,a1.name '字段',b.value '字段描述' from sysobjects a left join  sys.columns a1 on a.id = a1.object_id
 left join sys.extended_properties b on b.major_id = a.id and b.minor_id = a1.column_id
 where a.name='STUDENT_CLASS'

 

sysobjects:系统表 记录表名

sys.columns :记录表字段名

extended_properties : 表字段描述

 

复制代码
SELECT
  表名 = case when a.colorder = 1 then d.name else '' end,
  表说明 = case when a.colorder = 1 then isnull(f.value, '') else '' end,
  字段序号 = a.colorder,
  字段名 = a.name,
  标识 = case when COLUMNPROPERTY(a.id, a.name, 'IsIdentity')= 1 then '' else '' end,
  主键 = case when exists(
        SELECT 1 FROM sysobjects
        where xtype = 'PK' and parent_obj = a.id
        and name in (
            SELECT name FROM sysindexes
            WHERE indid in( SELECT indid FROM sysindexkeys WHERE id = a.id AND colid = a.colid)
        )
    ) then '' else '' end,
  类型 = b.name,
  占用字节数 = a.length,
  长度 = COLUMNPROPERTY(a.id, a.name, 'PRECISION'),
  小数位数 = isnull(COLUMNPROPERTY(a.id, a.name, 'Scale'),0),
  允许空 = case when a.isnullable = 1 then '' else '' end,
  默认值 = isnull(e.text, ''),
  字段说明 = isnull(g.[value], '')
FROM
  syscolumns a
  left join systypes b on a.xusertype = 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
  left join sys.extended_properties f on d.id = f.major_id and f.minor_id = 0
where
  d.name = 'BAS_DEPT' 
order by
  a.id,
  a.colorder
复制代码

 

posted @   致力于工作  阅读(841)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示