网上摘录的,比较详细的3个视图sql,功能很好很强大,以后根据需要可以自己修改,快速得到想要的结果.
代码如下:

表结构:

 1SqlServer2005数据库字典--SqlServer2005数据库字典--表结构.sql
 2SqlServer2005数据库字典SELECT TOP 100 PERCENT --a.id, 
 3SqlServer2005数据库字典      CASE WHEN a.colorder = 1 THEN d.name ELSE '' END AS 表名, 
 4SqlServer2005数据库字典      CASE WHEN a.colorder = 1 THEN isnull(f.value, ''ELSE '' END AS 表说明, 
 5SqlServer2005数据库字典      a.colorder AS 字段序号, a.name AS 字段名, CASE WHEN COLUMNPROPERTY(a.id, 
 6SqlServer2005数据库字典      a.name, 'IsIdentity'= 1 THEN '' ELSE '' END AS 标识, 
 7SqlServer2005数据库字典      CASE WHEN EXISTS
 8SqlServer2005数据库字典          (SELECT 1
 9SqlServer2005数据库字典         FROM dbo.sysindexes si INNER JOIN
10SqlServer2005数据库字典               dbo.sysindexkeys sik ON si.id = sik.id AND si.indid = sik.indid INNER JOIN
11SqlServer2005数据库字典               dbo.syscolumns sc ON sc.id = sik.id AND sc.colid = sik.colid INNER JOIN
12SqlServer2005数据库字典               dbo.sysobjects so ON so.name = si.name AND so.xtype = 'PK'
13SqlServer2005数据库字典         WHERE sc.id = a.id AND sc.colid = a.colid) THEN '' ELSE '' END AS 主键, 
14SqlServer2005数据库字典      b.name AS 类型, a.length AS 长度, COLUMNPROPERTY(a.id, a.name, 'PRECISION'
15SqlServer2005数据库字典      AS 精度, ISNULL(COLUMNPROPERTY(a.id, a.name, 'Scale'), 0AS 小数位数, 
16SqlServer2005数据库字典      CASE WHEN a.isnullable = 1 THEN '' ELSE '' END AS 允许空, ISNULL(e.text''
17SqlServer2005数据库字典      AS 默认值, ISNULL(g.[value]''AS 字段说明, d.crdate AS 创建时间, 
18SqlServer2005数据库字典      CASE WHEN a.colorder = 1 THEN d.refdate ELSE NULL END AS 更改时间
19SqlServer2005数据库字典FROM dbo.syscolumns a LEFT OUTER JOIN
20SqlServer2005数据库字典      dbo.systypes b ON a.xtype = b.xusertype INNER JOIN
21SqlServer2005数据库字典      dbo.sysobjects d ON a.id = d.id AND d.xtype = 'U' AND 
22SqlServer2005数据库字典      d.status >= 0 LEFT OUTER JOIN
23SqlServer2005数据库字典      dbo.syscomments e ON a.cdefault = e.id LEFT OUTER JOIN
24SqlServer2005数据库字典      sys.extended_properties g ON a.id = g.major_id AND a.colid = g.minor_id AND 
25SqlServer2005数据库字典      g.name = 'MS_Description' LEFT OUTER JOIN
26SqlServer2005数据库字典      sys.extended_properties f ON d.id = f.major_id AND f.minor_id = 0 AND 
27SqlServer2005数据库字典      f.name = 'MS_Description'
28SqlServer2005数据库字典ORDER BY d.name, 字段序号

索引:

SqlServer2005数据库字典--SqlServer数据库字典--索引.sql
SqlServer2005数据库字典
SELECT TOP 100 PERCENT --a.id, 
SqlServer2005数据库字典
      CASE WHEN b.keyno = 1 THEN c.name ELSE '' END AS 表名, 
SqlServer2005数据库字典      
CASE WHEN b.keyno = 1 THEN a.name ELSE '' END AS 索引名称, d.name AS 列名, 
SqlServer2005数据库字典      b.keyno 
AS 索引顺序, CASE indexkey_property(c.id, b.indid, b.keyno, 'isdescending'
SqlServer2005数据库字典      
WHEN 1 THEN '降序' WHEN 0 THEN '升序' END AS 排序, CASE WHEN p.id IS NULL 
SqlServer2005数据库字典      
THEN '' ELSE '' END AS 主键, CASE INDEXPROPERTY(c.id, a.name, 'IsClustered'
SqlServer2005数据库字典      
WHEN 1 THEN '' WHEN 0 THEN '' END AS 聚集, CASE INDEXPROPERTY(c.id, 
SqlServer2005数据库字典      a.name, 
'IsUnique'WHEN 1 THEN '' WHEN 0 THEN '' END AS 唯一, 
SqlServer2005数据库字典      
CASE WHEN e.id IS NULL THEN '' ELSE '' END AS 唯一约束, 
SqlServer2005数据库字典      a.OrigFillFactor 
AS 填充因子, c.crdate AS 创建时间, c.refdate AS 更改时间
SqlServer2005数据库字典
FROM dbo.sysindexes a INNER JOIN
SqlServer2005数据库字典      dbo.sysindexkeys b 
ON a.id = b.id AND a.indid = b.indid INNER JOIN
SqlServer2005数据库字典      dbo.syscolumns d 
ON b.id = d.id AND b.colid = d.colid INNER JOIN
SqlServer2005数据库字典      dbo.sysobjects c 
ON a.id = c.id AND c.xtype = 'U' LEFT OUTER JOIN
SqlServer2005数据库字典      dbo.sysobjects e 
ON e.name = a.name AND e.xtype = 'UQ' LEFT OUTER JOIN
SqlServer2005数据库字典      dbo.sysobjects p 
ON p.name = a.name AND p.xtype = 'PK'
SqlServer2005数据库字典
WHERE (OBJECTPROPERTY(a.id, N'IsUserTable'= 1AND (OBJECTPROPERTY(a.id, 
SqlServer2005数据库字典      N
'IsMSShipped'= 0AND (INDEXPROPERTY(a.id, a.name, 'IsAutoStatistics'= 0)
SqlServer2005数据库字典
ORDER BY c.name, a.name, b.keyno

表.视图.函数.存储过程.触发器.主键.外键.约束.规则:

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

oracle的数据字典哪天有空自己整理下.

相关文章: