使用SQL视图查出所有的数据库字典

本文中的SQL代码可以在企业管理器、查询分析器中简单执行,直接了当的查出SQL Server 2000及SQL Server 2005的所有数据字典。

(注释:数据库字典包括表结构(分SQL Server 2000和SQL Server 2005)、索引和主键.外键.约束.视图.函数.存储过程.触发器。)

SQL Server 2000数据库字典―表结构.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, a.name, "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 

数据挖掘论坛

SQL Server 2005数据库字典--表结构.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, a.name, "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  

SQL Server数据库字典--索引.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, a.name, "IsClustered") 
      WHEN 1 THEN "√" WHEN 0 THEN "" END AS 聚集, CASE INDEXPROPERTY(c.id, 
      a.name, "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, a.name, "IsAutoStatistics") = 0)
ORDER BY c.name, a.name, b.keyno 数据挖掘研究院 

SQL Server数据库字典--主键.外键.约束.视图.函数.存储过程.触发器.sql

SELECT DISTINCT 
      TOP 100 PERCENT o.xtype, 
      CASE o.xtype WHEN "X" THEN "扩展存储过程" WHEN "TR" THEN "触发器" WHEN "PK" THEN
       "主键" WHEN "F" THEN "外键" WHEN "C" THEN "约束" WHEN "V" THEN "视图" WHEN "FN"
       THEN "函数-标量" WHEN "IF" THEN "函数-内嵌" WHEN "TF" THEN "函数-表值" ELSE "存储过程"
       END AS 类型, o.name AS 对象名, o.crdate AS 创建时间, o.refdate AS 更改时间, 
      c.text AS 声明语句
FROM dbo.sysobjects o LEFT OUTER JOIN
      dbo.syscomments c ON o.id = c.id
WHERE (o.xtype IN ("X", "TR", "C", "V", "F", "IF", "TF", "FN", "P", "PK")) AND 
      (OBJECTPROPERTY(o.id, N"IsMSShipped") = 0)
ORDER BY CASE o.xtype WHEN "X" THEN "扩展存储过程" WHEN "TR" THEN "触发器" WHEN
       "PK" THEN "主键" WHEN "F" THEN "外键" WHEN "C" THEN "约束" WHEN "V" THEN "视图"
       WHEN "FN" THEN "函数-标量" WHEN "IF" THEN "函数-内嵌" WHEN "TF" THEN "函数-表值"
       ELSE "存储过程" END DESC  

(责任编辑:卢兆林)

数据挖掘工具

Create By Any-Extract(WL-AE)

数据挖掘实验室

[数据挖掘专家] [数据挖掘研究院] [数据挖掘论坛] [数据挖掘实验室]
上一篇:优化SQL Server数据库的经验总结
下一篇:实例讲解如何才能正确的更改表中的列顺序
最新评论共有 0 位网友发表了评论 , 查看所有评论
发表评论( 不能超过250字,需审核,请自觉遵守互联网相关政策法规。 )
匿名?
数据挖掘网站导航 数据挖掘论坛导航
  • 数据挖掘工具
  • 数据挖掘论坛
  • DataCruncher - Cognos
  • MineSet - MathSoft
  • Intelligent Miner - GainSmarts
  • Sqlserver - SAS - Clementine
  • CART - Weka - WizSoft
  • NeuroShell - ModelQuest
  • data mining tools - Darwin
  • 数据挖掘交友
  • 数据挖掘博客
  • 数据挖掘工具
  • 数据挖掘资源
  • 数据挖掘技术算法
  • 数据挖掘相关期刊、会议
  • 研究院联盟合作专区
  • 数据挖掘基础与相关技术
  • 数据挖掘厂商与就业
  • 数据挖掘研究者乐园
  • 知名厂商数据挖掘工具资料
  • 国内数据挖掘实验室
  • Foreign Data Mining Lab
  • 热点关注
  • MS SQL "1813"错误产生的原因及解决
  • SQL Server 2005的30个最重要特点
  • SQL Server数据仓库相关概念及构建流程
  • SQL Server 2005 Integration Services - P
  • SQL Server 2005 Integration Services - P
  • SQL Server 2005 Integration Services - L
  • 使用 WebSphere Commerce Analyzer 以关联
  • SQL Server 2005 Integration Services - P
  • SQL Server 2005 Integration Services - P
  • SQL Server 2005 Integration Services - F
  • 论坛最新话题
  • Foundations of Statistical Natural Langu
  • Game Theory meet Data Mining: A Recent P
  • System Building: How does it help or hin
  • 数据挖掘与Clementine培训
  • 新手报到
  • 求 SASEM 客户流失预测分析
  • 数据挖掘工程师/搜索研究院—北京——无线
  • 数据挖掘入门介绍(如何着手数据挖掘)
  • Information Overload Survey Results
  • The INEX 2005 Workshop on Element Retrie
  • 相关资讯
  • SQL Server 2005的30个最重要特点
  • 深入了解SQL Server数据库的线程与纤程
  • 数据挖掘实验室资料
  • 数据挖掘博客地址
  • 数据挖掘实验室网站地址
  • Prepare for Medicare audits by using dat
  • 注册成为SAS用户与爱好者俱乐部会员
  • 水南梅
  • 明日烟
  • 新人报道
  • 下载
  • 厦门服务器托管,450元/月—0592-5177319 高
  • 买空间送域名--0592-5177319 高静