lujiguo115 发表于 2015-6-30 11:59:50

从Sql server 2008获取表字段属性信息,注释信息

代码

select   b. from sys.columns a left join sys.extended_properties b on a.object_id=b.major_id
      and a.column_id=b.minor_id inner join sysobjects c on a.column_id=c.id
      and a.='列名' and c.='表名'
      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   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.,'')
      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='orders'         --如果只查询指定表,加上此条件
      order   by   a.id,a.colorder  
页: [1]
查看完整版本: 从Sql server 2008获取表字段属性信息,注释信息