我用网上的
SELECT  
    表名       = case when a.colorder=1 then d.name else '' end, 
    列名     = a.name, 
    类型       = b.name, 
    默认值     = isnull(e.text,''), 
    字段说明   = isnull(g.[value],'') 
FROM  
    syscolumns a 
left join  
    systypes b  
on  
    a.xusertype=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   
left join  
    sysproperties f  
on  
    d.id=f.id and f.smallid=0 
order by  
    d.name,a.colorder
怎么生成的记录只有第一个有表名啊? 不能补上表名吗? 表名,列名,类型,默认值,字段说明
User ID int 自增长的ID
NAME char 帐号
PWD char (888888)密码
DESC char 描述
补上后,假如下面的数据在一个专门的表里, 怎么反过来生成表呢?
User ID int 自增长的ID
User NAME char 帐号
User PWD char (888888)密码
User DESC char 描述

解决方案 »

  1.   

    第一行改下不就行了吗SELECT   
        表名       = d.name,  
        列名     = a.name,  
        类型       = b.name,  
        默认值     = isnull(e.text,''),  
        字段说明   = isnull(g.[value],'')  
    FROM   
        syscolumns a  
    left join   
        systypes b   
    on   
        a.xusertype=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    
    left join   
        sysproperties f   
    on   
        d.id=f.id and f.smallid=0  
    order by   
        d.name,a.colorder 
      

  2.   

    case when a.colorder=1 then d.name else '' end,改为
    d.Name
      

  3.   

    这个会了, 补上后,假如下面的数据在一个专门的表里, 怎么反过来生成表呢? 
    User ID int 自增长的ID 
    User NAME char 帐号 
    User PWD char (888888)密码 
    User DESC char 描述 
      

  4.   


    牛人当时写的:
    http://blog.chinaunix.net/u/13433/showart.php?id=207880