参考:http://blog.youkuaiyun.com/topcool/archive/2005/01/22/263553.aspx
selectobject_name(id)as表名
,c.nameas字段名
,t.name数据类型
,c.precas长度
fromsyscolumnsc
innerjoin
systypest
onc.xusertype=t.xusertype
whereobject_name(id)='Table'--把Table改成你的表名即可
go
等下写个数据字典生成器,然后就可以选中数据库,为里面的每个表都生成字典并写到excel文件中.呵呵.

另一个更强的.
SELECT表名=casewhena.colorder=1thend.nameelse''end,
字段序号=a.colorder,
字段名=a.name,
标识=casewhenCOLUMNPROPERTY(a.id,a.name,'IsIdentity')=1then'√'else''end,
主键=casewhenexists(SELECT1FROMsysobjectswherextype='PK'andname
in(SELECTnameFROMsysindexesWHEREindid
in(SELECTindidFROMsysindexkeysWHEREid=a.idANDcolid=a.colid)))
then'√'else''end,
类型=b.name,
--占用字节数=a.length,
长度=COLUMNPROPERTY(a.id,a.name,'PRECISION'),
小数位数=isnull(COLUMNPROPERTY(a.id,a.name,'Scale'),0),
允许空=casewhena.isnullable=1then'√'else''end,
默认值=isnull(e.text,''),
字段说明=isnull(g.[value],'')
FROMsyscolumnsaleftjoinsystypesbona.xtype=b.xusertypeinnerjoinsysobjectsdona.id=d.id
andd.xtype='U'andd.name<>'dtproperties'
leftjoinsyscommentseona.cdefault=e.idleftjoinsyspropertiesgona.id=g.id
anda.colid=g.smallid
orderbya.id,a.colorder

还有这位老兄的查看每个表使用的大小代码
execsp_spaceusedlibbooks

就可以查出来了
比较详细,有行数,表保留的空间总量,数据所使用的空间量,表中的索引所使用的空间量,表中未用的空间量
不加参数,可以查到数据库的使用量:
execsp_spaceused
