虽然获取SQL数据库中所有表结构不是经常用到.但是在一些比较特殊的情况下还是会有使用.本文就给出一个获取SQL数据库所有表结构的SQL语句.大家在碰到这种需求时可以参考

SQL代码如下:

  SELECT

  (case when a.colorder=1 then d.name else '' end) N'表名',

  a.colorder N'字段序号',

  a.name N'字段名',

  (case when COLUMNPROPERTY( a.id,a.name,'IsIdentity')=1 then '√'else '' end) N'标识',

  (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) N'主键',

  b.name N'类型',

  a.length N'占用字节数',

  COLUMNPROPERTY(a.id,a.name,'PRECISION') as N'长度',

  isnull(COLUMNPROPERTY(a.id,a.name,'Scale'),0) as N'小数位数',

  (case when a.isnullable=1 then '√'else '' end) N'允许空',

  isnull(e.text,'') N'默认值',

  isnull(g.[value],'') AS N'字段说明'

  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

  order by object_name(a.id),a.colorder