sql server 2005 导出用户表数据字典

-- 作用:用于 sql server 2005  导出用户表数据字典
-- 作者:郭强 -- 时间:年月日 -- 用法如下:
--1  默认导出当前数据库中所有用户表 (xtype = 'u') 的数据字典;
--2  可以在 xtype = 'u' 替换为如下所示语句 xtype = 'u' and name in ('son','Person')  导出自定义的表的数据字典;
--3  可以利用集成服务 SSIS 导出数据字典的 excel 文件,形成文档;
------------------------------------------------------
 
 
select  sysobjects.name as " 表名 ",syscolumns.name as " 字段名 ",
case  when systypes.name in ('binary','char','nchar') then (systypes.name + '(' + cast(syscolumns.prec as varchar(50))+ ')')
when  systypes.name in ('decimal','numeric') then (systypes.name + '(' + cast(syscolumns.prec as varchar(50)) + ',' +cast(syscolumns.scale as varchar(50)) + ')')
when  systypes.name in ('nvarchar','varchar','varbinary') then (case when syscolumns.prec = -then (systypes.name +'(MAX)') else (systypes.name + '(' + cast(syscolumns.prec as varchar(50)) + ')') end)
else  systypes.name end as " 字段类型 ",
syscomments.text as " 默认值 ", case when syscolumns.isnullable = 1 then 'Y' else 'N' end as " 能否为空 ",
 cast(sys.extended_properties.value as varchar(1024)) as " 备注 "
from  syscolumns inner join systypes on syscolumns.xtype = systypes.xtype left join sysobjects
on  syscolumns.id = sysobjects.id left outer join sys.extended_properties
on  ( sys.extended_properties.minor_id = syscolumns.colid and sys.extended_properties.major_id = syscolumns.id)left outer join syscomments
on  syscolumns.cdefault = syscomments.id where syscolumns.id in (select id from sysobjects where xtype = 'u') and(systypes.name <> 'sysname') order by sysobjects.name asc


-----------存儲過程
-GetTableinfo 'cst' 


  
  
alter procedure GetTableinfo  @Systemname varchar (8)   
as   
declare @Tvar1 table(tablename varchar(12),id int,Name varchar(50) null,CNname varchar(50) null,type varchar(30) null,length int null,IntofBit int null,xscale int null,collation varchar(30) null,isnullable varchar(10) not null default 'False')  
  
SET @Systemname=@Systemname+'%' 

 select  @Systemname
  
insert into @Tvar1  
  select d.name,a.colid,A.name,CNname=isnull(Displayvalue,''),  
  type=c.name ,  
  A.length,(A.prec-A.scale) IntofBit ,A.scale,A.collation,  
  isnullable=(case isnullable when 1 then 'YES' else  'NO' end)   
  from syscolumns A   
  inner join  
  (select name from syscolumns where id in ( (SELECT  id  FROM sysobjects where xtype='u'  and name like @Systemname  and len(rtrim(ltrim(name)))='8'))) as B  
  on A.name=B.name  
left join ERPDD on DDKEY=A.name  
join systypes c on c.xusertype=A.xusertype   
join sysobjects d on a.id=d.id     
  WHERE a.id in (SELECT  id  FROM sysobjects where xtype='u'  and name like @Systemname  and len(rtrim(ltrim(name)))='8')  
group by d.name,A.name,isnull(Displayvalue,''),  
  c.name ,A.length,(A.prec-A.scale)  ,A.scale,A.collation,  
(case isnullable when 1 then 'YES' else  'NO' end) , a.colid  
ORDER BY a.colid  
select tablename [表名], Name [字段名],type [字段類型],Length [字段寬度],id,isnull(xscale,'') [小數位數],isnullable [是否允許為空] ,CNname [中文解釋] from @Tvar1  order by tablename  
  
  

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/16998571/viewspace-605789/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/16998571/viewspace-605789/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值