获取数据库中表结构信息

USE HRMSys
 SELECT 
   表名   = CASE a.colorder WHEN 1 THEN c.name ELSE '' END, 
   序     = a.colorder, 
   字段名 = a.name, 
   标识   = CASE COLUMNPROPERTY(a.id,a.name,'IsIdentity') WHEN 1 THEN '' ELSE '' END, 
   主键   = CASE 
     WHEN EXISTS ( 
       SELECT * 
       FROM sysobjects 
       WHERE xtype='PK' AND 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 
           ) 
         ) 
       ) 
     ) 
     THEN '' 
     ELSE '' 
   END, 
   类型   = b.name, 
   字节数 = a.length, 
   长度   = COLUMNPROPERTY(a.id,a.name,'Precision'), 
   小数   = CASE ISNULL(COLUMNPROPERTY(a.id,a.name,'Scale'),0) 
     WHEN 0 THEN '' 
     ELSE CAST(COLUMNPROPERTY(a.id,a.name,'Scale') AS VARCHAR) 
   END, 
   允许空 = CASE a.isnullable WHEN 1 THEN '' ELSE '' END, 
   默认值 = ISNULL(d.[text],'')
 FROM syscolumns a 
   LEFT  JOIN systypes      b ON a.xtype=b.xusertype 
   INNER JOIN sysobjects    c ON a.id=c.id AND c.xtype='U' AND c.name<>'dtproperties' 
   LEFT  JOIN syscomments   d ON a.cdefault=d.id 
 ORDER BY c.name, a.colorder 

 

posted @ 2013-01-31 22:56  sixstar01  阅读(282)  评论(0编辑  收藏  举报