sqlserver2005经过测试:
?
?
SELECT TOP 100 PERCENT --a.id, CASE WHEN a.colorder = 1 THEN d.name ELSE '' END AS 表名, CASE WHEN a.colorder = 1 THEN isnull(f.value,'') ELSE '' END AS 表说明, a.colorder AS 字段序号,a.name AS 字段名,CASE WHEN COLUMNPROPERTY(a.id, a.name,'IsIdentity') = 1 THEN '√' ELSE '' END AS 标识, CASE WHEN EXISTS (SELECT 1 FROM dbo.sysindexes si INNER JOIN dbo.sysindexkeys sik ON si.id = sik.id AND si.indid = sik.indid INNER JOIN dbo.syscolumns sc ON sc.id = sik.id AND sc.colid = sik.colid INNER JOIN dbo.sysobjects so ON so.name = so.name AND so.xtype = 'PK' WHERE sc.id = a.id AND sc.colid = a.colid) THEN '√' ELSE '' END AS 主键, b.name AS 类型,a.length AS 长度,COLUMNPROPERTY(a.id,a.name,'PRECISION') AS 精度,ISNULL(COLUMNPROPERTY(a.id,'Scale'),0) AS 小数位数, CASE WHEN a.isnullable = 1 THEN '√' ELSE '' END AS 允许空,ISNULL(e.text,'') AS 默认值,ISNULL(g.[value],'') AS 字段说明,d.crdate AS 创建时间, CASE WHEN a.colorder = 1 THEN d.refdate ELSE NULL END AS 更改时间 FROM dbo.syscolumns a LEFT OUTER JOIN dbo.systypes b ON a.xtype = b.xusertype INNER JOIN dbo.sysobjects d ON a.id = d.id AND d.xtype = 'U' AND d.status >= 0 LEFT OUTER JOIN dbo.syscomments e ON a.cdefault = e.id LEFT OUTER JOIN sys.extended_properties g ON a.id = g.major_id AND a.colid = g.minor_id LEFT OUTER JOIN sys.extended_properties f ON d.id = f.major_id AND f.minor_id = 0 ORDER BY d.name,a.colorder
?
?
?
?
?
?
1. SqlServer2000数据库字典--表结构.sql

SELECT
?
TOP
?
100
?
PERCENT
?
--
a.id,?

??????
CASE
?
WHEN
?a.colorder?
=
?
1
?
THEN
?d.name?
ELSE
?
''
?
END
?
AS
?表名,?
 ??????
CASE
?
WHEN
?a.colorder?
=
?
1
?
THEN
?
isnull
(f.value,?
''
)?
ELSE
?
''
?
END
?
AS
?表说明,?
 ??????a.colorder?
AS
?字段序号,?a.name?
AS
?字段名,?
CASE
?
WHEN
?
COLUMNPROPERTY
(a.id,?
 ??????a.name,?
'
IsIdentity
'
)?
=
?
1
?
THEN
?
'
√
'
?
ELSE
?
''
?
END
?
AS
?标识,?
 ??????
CASE
?
WHEN
?
EXISTS
 ??????????(
SELECT
?
1
 ?????????
FROM
?dbo.sysindexes?si?
INNER
?
JOIN
 ???????????????dbo.sysindexkeys?sik?
ON
?si.id?
=
?sik.id?
AND
?si.indid?
=
?sik.indid?
INNER
?
JOIN
 ???????????????dbo.syscolumns?sc?
ON
?sc.id?
=
?sik.id?
AND
?sc.colid?
=
?sik.colid?
INNER
?
JOIN
 ???????????????dbo.sysobjects?so?
ON
?so.name?
=
?si.name?
AND
?so.xtype?
=
?
'
PK
'
 ?????????
WHERE
?sc.id?
=
?a.id?
AND
?sc.colid?
=
?a.colid)?
THEN
?
'
√
'
?
ELSE
?
''
?
END
?
AS
?主键,?
 ??????b.name?
AS
?类型,?a.length?
AS
?长度,?
COLUMNPROPERTY
(a.id,?a.name,?
'
PRECISION
'
)?
 ??????
AS
?精度,?
ISNULL
(
COLUMNPROPERTY
(a.id,?
'
Scale
'
),?
0
)?
AS
?小数位数,?
 ??????
CASE
?
WHEN
?a.isnullable?
=
?
1
?
THEN
?
'
√
'
?
ELSE
?
''
?
END
?
AS
?允许空,?
ISNULL
(e.
text
,?
''
)?
 ??????
AS
?默认值,?
ISNULL
(g.
[
value
]
,?
''
)?
AS
?字段说明,?d.crdate?
AS
?创建时间,?
 ??????
CASE
?
WHEN
?a.colorder?
=
?
1
?
THEN
?d.refdate?
ELSE
?
NULL
?
END
?
AS
?更改时间

FROM
?dbo.syscolumns?a?
LEFT
?
OUTER
?
JOIN
 ??????dbo.systypes?b?
ON
?a.xtype?
=
?b.xusertype?
INNER
?
JOIN
 ??????dbo.sysobjects?d?
ON
?a.id?
=
?d.id?
AND
?d.xtype?
=
?
'
U
'
?
AND
?
 ??????d.status?
>=
?
0
?
LEFT
?
OUTER
?
JOIN
 ??????dbo.syscomments?e?
ON
?a.cdefault?
=
?e.id?
LEFT
?
OUTER
?
JOIN
 ??????dbo.sysproperties?g?
ON
?a.id?
=
?g.id?
AND
?a.colid?
=
?g.smallid?
AND
?
 ??????g.name?
=
?
'
MS_Description
'
?
LEFT
?
OUTER
?
JOIN
 ??????dbo.sysproperties?f?
ON
?d.id?
=
?f.id?
AND
?f.smallid?
=
?
0
?
AND
?
 ??????f.name?
=
?
'
MS_Description
'

ORDER
?
BY
?d.name,?a.colorder
????SqlServer2005数据库字典--表结构.sql
 SELECT
?
TOP
?
100
?
PERCENT
?
--
a.id,?
 ??????
CASE
?
WHEN
?a.colorder?
=
?
1
?
THEN
?d.refdate?
ELSE
?
NULL
?
END
?
AS
?更改时间

FROM
?dbo.syscolumns?a?
LEFT
?
OUTER
?
JOIN
 ??????dbo.systypes?b?
ON
?a.xtype?
=
?b.xusertype?
INNER
?
JOIN
 ??????dbo.sysobjects?d?
ON
?a.id?
=
?d.id?
AND
?d.xtype?
=
?
'
U
'
?
AND
?
 ??????d.status?
>=
?
0
?
LEFT
?
OUTER
?
JOIN
 ??????dbo.syscomments?e?
ON
?a.cdefault?
=
?e.id?
LEFT
?
OUTER
?
JOIN
 ??????sys.extended_properties?g?
ON
?a.id?
=
?g.major_id?
AND
?a.colid?
=
?g.minor_id?
AND
?
 ??????g.name?
=
?
'
MS_Description
'
?
LEFT
?
OUTER
?
JOIN
 ??????sys.extended_properties?f?
ON
?d.id?
=
?f.major_id?
AND
?f.minor_id?
=
?
0
?
AND
?
 ??????f.name?
=
?
'
MS_Description
'

ORDER
?
BY
?d.name,?字段序号
2. SqlServer数据库字典--索引.sql
 SELECT
?
TOP
?
100
?
PERCENT
?
--
a.id,?

??????
CASE
?
WHEN
?b.keyno?
=
?
1
?
THEN
?c.name?
ELSE
?
''
?
END
?
AS
?表名,?
 ??????
CASE
?
WHEN
?b.keyno?
=
?
1
?
THEN
?a.name?
ELSE
?
''
?
END
?
AS
?索引名称,?d.name?
AS
?列名,?
 ??????b.keyno?
AS
?索引顺序,?
CASE
?indexkey_property(c.id,?b.indid,?b.keyno,?
'
isdescending
'
)?
 ??????
WHEN
?
1
?
THEN
?
'
降序
'
?
WHEN
?
0
?
THEN
?
'
升序
'
?
END
?
AS
?排序,?
CASE
?
WHEN
?p.id?
IS
?
NULL
?
 ??????
THEN
?
''
?
ELSE
?
'
√
'
?
END
?
AS
?主键,?
CASE
?
INDEXPROPERTY
(c.id,?
'
IsClustered
'
)?
 ??????
WHEN
?
1
?
THEN
?
'
√
'
?
WHEN
?
0
?
THEN
?
''
?
END
?
AS
?聚集,?
'
IsUnique
'
)?
WHEN
?
1
?
THEN
?
'
√
'
?
WHEN
?
0
?
THEN
?
''
?
END
?
AS
?唯一,?
 ??????
CASE
?
WHEN
?e.id?
IS
?
NULL
?
THEN
?
''
?
ELSE
?
'
√
'
?
END
?
AS
?唯一约束,?
 ??????a.OrigFillFactor?
AS
?填充因子,?c.crdate?
AS
?创建时间,?c.refdate?
AS
?更改时间

FROM
?dbo.sysindexes?a?
INNER
?
JOIN
 ??????dbo.sysindexkeys?b?
ON
?a.id?
=
?b.id?
AND
?a.indid?
=
?b.indid?
INNER
?
JOIN
 ??????dbo.syscolumns?d?
ON
?b.id?
=
?d.id?
AND
?b.colid?
=
?d.colid?
INNER
?
JOIN
 ??????dbo.sysobjects?c?
ON
?a.id?
=
?c.id?
AND
?c.xtype?
=
?
'
U
'
?
LEFT
?
OUTER
?
JOIN
 ??????dbo.sysobjects?e?
ON
?e.name?
=
?a.name?
AND
?e.xtype?
=
?
'
UQ
'
?
LEFT
?
OUTER
?
JOIN
 ??????dbo.sysobjects?p?
ON
?p.name?
=
?a.name?
AND
?p.xtype?
=
?
'
PK
'

WHERE
?(
OBJECTPROPERTY
(a.id,?N
'
IsUserTable
'
)?
=
?
1
)?
AND
?(
OBJECTPROPERTY
(a.id,?
 ??????N
'
IsMSShipped
'
)?
=
?
0
)?
AND
?(
INDEXPROPERTY
(a.id,?
'
IsAutoStatistics
'
)?
=
?
0
)

ORDER
?
BY
?c.name,?b.keyno
3. SqlServer数据库字典--表.视图.函数.存储过程.触发器.主键.外键.约束.规则.sql
 SELECT
?
DISTINCT
?
 ??????
TOP
?
100
?
PERCENT
?
isnull
(p.name,
''
)?
AS
?父对象,?o.xtype,?
 ??????
CASE
?o.xtype?
WHEN
?
'
C
'
?
THEN
?
'
CHECK?约束
'
?
WHEN
?
'
D
'
?
THEN
?
'
默认值或DEFAULT约束
'
 ???????
WHEN
?
'
F
'
?
THEN
?
'
FOREIGNKEY约束
'
?
WHEN
?
'
L
'
?
THEN
?
'
日志
'
?
WHEN
?
'
FN
'
?
THEN
?
'
标量函数
'
 ???????
WHEN
?
'
IF
'
?
THEN
?
'
内嵌表函数
'
?
WHEN
?
'
P
'
?
THEN
?
'
存储过程
'
?
WHEN
?
'
PK
'
?
THEN
?
'
PRIMARYKEY约束
'
 ???????
WHEN
?
'
RF
'
?
THEN
?
'
复制筛选存储过程
'
?
WHEN
?
'
S
'
?
THEN
?
'
系统表
'
?
WHEN
?
'
TF
'
?
THEN
?
'
表函数
'
 ???????
WHEN
?
'
TR
'
?
THEN
?
'
触发器
'
?
WHEN
?
'
U
'
?
THEN
?
'
用户表
'
?
WHEN
?
'
UQ
'
?
THEN
?
'
UNIQUE?约束
'
 ???????
WHEN
?
'
V
'
?
THEN
?
'
视图
'
?
WHEN
?
'
X
'
?
THEN
?
'
扩展存储过程
'
?
WHEN
?
'
R
'
?
THEN
?
'
规则
'
?
ELSE
?
NULL
 ???????
END
?
AS
?类型,?o.name?
AS
?对象名,?o.crdate?
AS
?创建时间,?o.refdate?
AS
?更改时间,?
 ??????c.
text
?
AS
?声明语句,
OBJECTPROPERTY
(o.id,?N
'
IsMSShipped
'
)

FROM
?dbo.sysobjects?o?
Left
?
JOIN
 ??????dbo.sysobjects?p?
ON
?o.parent_obj?
=
?p.id?
LEFT
?
OUTER
?
JOIN
 ??????dbo.syscomments?c?
ON
?o.id?
=
?c.id

WHERE
?
--
(o.xtype?IN?('C','D','F','PK','UQ','L','FN','IF','TF','TR','P','R','RF','X','S','U','V'))?AND?

??????(
OBJECTPROPERTY
(o.id,?N
'
IsMSShipped
'
)?
=
?
0
)?
AND
?(
isnull
(p.name,
''
)?
<>
?N
'
dtproperties
'
)

ORDER
?
BY
?o.xtype?
DESC
?
?
转自:http://www.cnblogs.com/drc/archive/2007/11/09/954123.html
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|