SQLServer2008/2005 生成数据字典语句

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   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.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   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='要查询的表'         --如果只查询指定表,加上此条件   
   order    by   a.id,a.colorder   
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值