SELECTTOP100PERCENT--a.id, CASEWHEN a.colorder
=1THEN d.name
ELSE''ENDAS 表名,
CASEWHEN a.colorder
=1THENisnull(f.value,
'')
ELSE''ENDAS 表说明,
a.colorder
AS 字段序号, a.name
AS 字段名,
CASEWHENCOLUMNPROPERTY(a.id,
a.name,
'IsIdentity')
=1THEN'√'ELSE''ENDAS 标识,
CASEWHENEXISTS (
SELECT1 FROM dbo.sysindexes si
INNERJOIN dbo.sysindexkeys sik
ON si.id
= sik.id
AND si.indid
= sik.indid
INNERJOIN dbo.syscolumns sc
ON sc.id
= sik.id
AND sc.colid
= sik.colid
INNERJOIN dbo.sysobjects so
ON so.name
= si.name
AND so.xtype
='PK' WHERE sc.id
= a.id
AND sc.colid
= a.colid)
THEN'√'ELSE''ENDAS 主键,
b.name
AS 类型, a.length
AS 长度,
COLUMNPROPERTY(a.id, a.name,
'PRECISION')
AS 精度,
ISNULL(
COLUMNPROPERTY(a.id, a.name,
'Scale'),
0)
AS 小数位数,
CASEWHEN a.isnullable
=1THEN'√'ELSE''ENDAS 允许空,
ISNULL(e.
text,
'')
AS 默认值,
ISNULL(g.
[value],
'')
AS 字段说明, d.crdate
AS 创建时间,
CASEWHEN a.colorder
=1THEN d.refdate
ELSENULLENDAS 更改时间
FROM dbo.syscolumns a
LEFTOUTERJOIN dbo.systypes b
ON a.xtype
= b.xusertype
INNERJOIN dbo.sysobjects d
ON a.id
= d.id
AND d.xtype
='U'AND d.status
>=0LEFTOUTERJOIN dbo.syscomments e
ON a.cdefault
= e.id
LEFTOUTERJOIN dbo.sysproperties g
ON a.id
= g.id
AND a.colid
= g.smallid
AND g.name
='MS_Description'LEFTOUTERJOIN dbo.sysproperties f
ON d.id
= f.id
AND f.smallid
=0AND f.name
='MS_Description' ORDERBY d.name, a.colorder
SqlServer2005数据库字典--表结构.sql
SELECTTOP100PERCENT--a.id, CASEWHEN a.colorder
=1THEN d.name
ELSE''ENDAS 表名,
CASEWHEN a.colorder
=1THENisnull(f.value,
'')
ELSE''ENDAS 表说明,
a.colorder
AS 字段序号, a.name
AS 字段名,
CASEWHENCOLUMNPROPERTY(a.id,
a.name,
'IsIdentity')
=1THEN'√'ELSE''ENDAS 标识,
CASEWHENEXISTS (
SELECT1 FROM dbo.sysindexes si
INNERJOIN dbo.sysindexkeys sik
ON si.id
= sik.id
AND si.indid
= sik.indid
INNERJOIN dbo.syscolumns sc
ON sc.id
= sik.id
AND sc.colid
= sik.colid
INNERJOIN dbo.sysobjects so
ON so.name
= si.name
AND so.xtype
='PK' WHERE sc.id
= a.id
AND sc.colid
= a.colid)
THEN'√'ELSE''ENDAS 主键,
b.name
AS 类型, a.length
AS 长度,
COLUMNPROPERTY(a.id, a.name,
'PRECISION')
AS 精度,
ISNULL(
COLUMNPROPERTY(a.id, a.name,
'Scale'),
0)
AS 小数位数,
CASEWHEN a.isnullable
=1THEN'√'ELSE''ENDAS 允许空,
ISNULL(e.
text,
'')
AS 默认值,
ISNULL(g.
[value],
'')
AS 字段说明, d.crdate
AS 创建时间,
CASEWHEN a.colorder
=1THEN d.refdate
ELSENULLENDAS 更改时间
FROM dbo.syscolumns a
LEFTOUTERJOIN dbo.systypes b
ON a.xtype
= b.xusertype
INNERJOIN dbo.sysobjects d
ON a.id
= d.id
AND d.xtype
='U'AND d.status
>=0LEFTOUTERJOIN dbo.syscomments e
ON a.cdefault
= e.id
LEFTOUTERJOIN sys.extended_properties g
ON a.id
= g.major_id
AND a.colid
= g.minor_id
AND g.name
='MS_Description'LEFTOUTERJOIN sys.extended_properties f
ON d.id
= f.major_id
AND f.minor_id
=0AND f.name
='MS_Description' ORDERBY d.name, 字段序号
2.
SqlServer数据库字典--索引.sql
SELECTTOP100PERCENT--a.id, CASEWHEN b.keyno
=1THEN c.name
ELSE''ENDAS 表名,
CASEWHEN b.keyno
=1THEN a.name
ELSE''ENDAS 索引名称, d.name
AS 列名,
b.keyno
AS 索引顺序,
CASE indexkey_property(c.id, b.indid, b.keyno,
'isdescending')
WHEN1THEN'降序'WHEN0THEN'升序'ENDAS 排序,
CASEWHEN p.id
ISNULL THEN''ELSE'√'ENDAS 主键,
CASEINDEXPROPERTY(c.id, a.name,
'IsClustered')
WHEN1THEN'√'WHEN0THEN''ENDAS 聚集,
CASEINDEXPROPERTY(c.id,
a.name,
'IsUnique')
WHEN1THEN'√'WHEN0THEN''ENDAS 唯一,
CASEWHEN e.id
ISNULLTHEN''ELSE'√'ENDAS 唯一约束,
a.OrigFillFactor
AS 填充因子, c.crdate
AS 创建时间, c.refdate
AS 更改时间
FROM dbo.sysindexes a
INNERJOIN dbo.sysindexkeys b
ON a.id
= b.id
AND a.indid
= b.indid
INNERJOIN dbo.syscolumns d
ON b.id
= d.id
AND b.colid
= d.colid
INNERJOIN dbo.sysobjects c
ON a.id
= c.id
AND c.xtype
='U'LEFTOUTERJOIN dbo.sysobjects e
ON e.name
= a.name
AND e.xtype
='UQ'LEFTOUTERJOIN 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, a.name,
'IsAutoStatistics')
=0)
ORDERBY c.name, a.name, b.keyno
SELECTDISTINCT TOP100PERCENTisnull(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'规则'ELSENULL ENDAS 类型, o.name
AS 对象名, o.crdate
AS 创建时间, o.refdate
AS 更改时间,
c.
textAS 声明语句,
OBJECTPROPERTY(o.id, N
'IsMSShipped')
FROM dbo.sysobjects o
LeftJOIN dbo.sysobjects p
ON o.parent_obj
= p.id
LEFTOUTERJOIN 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')
ORDERBY o.xtype
DESC