2005数据库结构显示

 

use  Roy  -- 數據庫
go
-- 2005實現數據庫表字段屬性統計(2000里的系統表sysproperties描述表不存在,2005里用sys.extended_properties視圖替代)
select  
    
[ 表名 ] = c.Name,
    
[ 表说明 ] = isnull (f. [ value ] , '' ),
    
[ 列名 ] = a.Name,
    
[ 列序號 ] = a.Column_id,
    
[ 標識 ] = case   when  is_identity = 1   then   ' '   else   ''   end ,
    
[ 主鍵 ] = case   when   exists ( select   1   from  sys.objects x  join  sys.indexes y  on  x.Type = N ' PK '   and  x.Name = y.Name 
                        
join  sysindexkeys z  on  z.ID = a. Object_id  and x.parent_object_id = z.id  and  z.indid = y.index_id  and  z.Colid = a.Column_id)
                    
then   ' '   else   ''   end ,
    
[ 類型 ] = b.Name,
    
[ 字節數 ] = case   when  a. [ max_length ] =- 1   and  b.Name != ' xml '   then   ' max/2G '  
            
when  b.Name = ' xml '   then   ' 2^31-1字節/2G '
            
else   rtrim (a. [ max_length ] end ,
    
[ 長度 ] = case   when   ColumnProperty (a. object_id ,a.Name, ' Precision ' ) =- 1   then   ' 2^31-1 '
                
else   rtrim ( ColumnProperty (a. object_id ,a.Name, ' Precision ' ))  end ,
    
[ 小數 ] = isnull ( ColumnProperty (a. object_id ,a.Name, ' Scale ' ), 0 ),
    
[ 是否為空 ] = case   when  a.is_nullable = 1   then   ' '   else   ''   end ,
    
[ 列说明 ] = isnull (e. [ value ] , '' ),
    
[ 默認值 ] = isnull (d. text , '' )    
from  
    sys.columns a
left   join
    sys.types b 
on  a.user_type_id = b.user_type_id
inner   join
    sys.objects c 
on  a. object_id = c. object_id   and  c.Type = ' U '
left   join
    syscomments d 
on  a.default_object_id = d.ID
left   join
    sys.extended_properties e 
on  e.major_id = c. object_id   and  e.minor_id = a.Column_id  and  e.class = 1  
left   join
    sys.extended_properties f 
on  f.major_id = c. object_id   and  f.minor_id = 0   and  f.class = 1




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值