--
作用:用于
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 = -1 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/