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 @ 2019-04-11 13:03  致力于工作  阅读(863)  评论(0)    收藏  举报