select
( case when a.colorder = 1 then d.name else '' end ) 表名,
a.colorder 字段序号,
a.name 字段名,
( case when COLUMNPROPERTY (a.id,a.name,'isidentity') = 1 then '√' else '' end ) 标识,
( 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 ) 主键,
b.name 类型,
a.length 字节数, COLUMNPROPERTY ( a.id,a.name ,'PRECISION' ) as 长度,
isnull ( COLUMNPROPERTY ( a.id,a.name ,'Scale'),0) as 小数位数,
(case when a.isnullable = 1 then '√' else '' end ) 允许空,
isnull ( e.text,'') 默认值,
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 sysproperties g
on a.id = g.id and a.colid = g.smallid
--where a.name like '%status%'
order by a.id ,a.colorder