select
o.name as tablename, --表名
a.name as FieldName, -- 字段名
a.isnullable, -- 是否可为空
b.Value as FieldDesc, -- 字段说明
c.name as FieldType, -- 数据类型
COLUMNPROPERTY(a.id,a.name,'IsIdentity') as isidentity, --是否标识列
PK=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 'true' else 'false' end --是否主键
from SysColumns a left join
sysproperties b on a.id=b.id and a.colid=b.smallid --sysproperties 适用于sql2000;sys.extended_properties 适用于sql2008R2或以后版本
left join systypes c on a.xusertype=c.xusertype
left join sysobjects o on a.id=o.id
where o.xtype='U'
and COLUMNPROPERTY(a.id,a.name,'IsIdentity')=1 --查询所有标识值
--and a.id=Object_Id('jp_users') ---表查询