批量查询数据表的标识值的方法

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') ---表查询
原文地址:https://www.cnblogs.com/accumulater/p/7515434.html