问一下大家怎么SQL语句实现在一个表中查询表字段的类型和长度啊???

解决方案 »

  1.   

    你到这个Blog里看看:http://blog.csdn.net/Internetroot/archive/2007/09/01/1768642.aspx,很详细。
      

  2.   

    --1,例如authors表
    select a.name,b.name,c.name,b.length from sysobjects a,syscolumns b,systypes c
    where a.id=b.id and a.name='authors' and b.xtype=c.xtype--2
    sp_help authors
      

  3.   

    sp_help 表查询这张表中所有属性,比如字段阿,创建时间啊!
      

  4.   

    SELECT 
        (case when a.colorder=1 then d.name else '' end) 表名,
         a.colorder 字段序号,
         a.name 字段名,
        (case when COLUMNPROPERTY( a.id,a.name,'IsIdentity')=1 then '√' else '' end) 标识,
        (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) 主键,
         b.name 类型,
         a.length 占用字节数,
         COLUMNPROPERTY(a.id,a.name,'PRECISION') as 长度,
         isnull(COLUMNPROPERTY(a.id,a.name,'Scale'),0) as 小数位数,
        (case when a.isnullable=1 then '√'else '' end) 允许空,
         isnull(e.text,'') 默认值,
         isnull(g.[value],'') AS 字段说明    
     
    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 a.id,a.colorder