取数据库表中字段的描述信息

Sql2000:
==========================

 

SELECT  SysObjects.Name,  -- 表名 
    SysColumns.Name,   -- 字段名
    SysTypes.Name,   -- 字段类型
    SysColumns.Length,   -- 字段长度  
    SysProperties.Value   -- 字段描述   
   FROM  SysObjects,   
  SysTypes,   
  SysColumns   
  
LEFT   JOIN  SysProperties 
  
ON  (Syscolumns.Id    =    Sysproperties.Id    AND    Syscolumns.Colid  =  Sysproperties.Smallid)   
  
WHERE  (Sysobjects.Xtype    = ' u '   OR  Sysobjects.Xtype    = ' v ' )   
  
AND  Sysobjects.Id  =  Syscolumns.Id   
  
AND  SysTypes.XType  =  Syscolumns.XType   
  
AND  Sysobjects.Name  =   ' Contract '   -- 指字要查找的表名
   ORDER   BY  smallid 




SqlServer2005:
=============================

SELECT  
    表名       
=   case   when  a.colorder = 1   then  d.name  else   ''   end ,
    表说明     
=   case   when  a.colorder = 1   then   isnull (f.value, '' else   ''   end ,
    字段序号   
=  a.colorder,
    字段名     
=  a.name,
    标识       
=   case   when   COLUMNPROPERTY ( a.id,a.name, ' IsIdentity ' ) = 1   then   ' ' else   ''   end ,
    主键       
=   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   ' '   else   ''   end ,
    类型       
=  b.name,
    占用字节数 
=  a.length,
    长度       
=   COLUMNPROPERTY (a.id,a.name, ' PRECISION ' ),
    小数位数   
=   isnull ( COLUMNPROPERTY (a.id,a.name, ' Scale ' ), 0 ),
    允许空     
=   case   when  a.isnullable = 1   then   ' ' else   ''   end ,
    默认值     
=   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  
sys.extended_properties   g 
on  
    a.id
= G.major_id  and  a.colid = g.minor_id  
left   join  

sys.extended_properties f
on  
    d.id
= f.major_id  and  f.minor_id = 0
where  
    d.name
= ' Contract '      -- 如果只查询指定表,加上此条件
order   by  
    a.id,a.colorder

转载于:https://www.cnblogs.com/ztotem/archive/2008/12/23/1360504.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值