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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。