首页 数据库 mysql教程 如何获取MSSQLServer,Oracel,Access中的数据字典信息

如何获取MSSQLServer,Oracel,Access中的数据字典信息

Jun 07, 2016 pm 03:05 PM
如何 获取

------------------------- MS SQLServer ------------------------------------------------------------ --表说明 SELECT dbo.sysobjects.name AS TableName, dbo.sysproperties.[value] AS TableDesc FROM dbo.sysproperties INNER JOIN dbo.sysobjects O

------------------------- MS SQLServer ------------------------------------------------------------
--表说明
SELECT dbo.sysobjects.name AS TableName,
      dbo.sysproperties.[value] AS TableDesc
FROM dbo.sysproperties INNER JOIN
      dbo.sysobjects ON dbo.sysproperties.id = dbo.sysobjects.id
WHERE (dbo.sysproperties.smallid = 0)
ORDER BY dbo.sysobjects.name

--字段说明
SELECT dbo.sysobjects.name AS TableName, dbo.syscolumns.colid,
      dbo.syscolumns.name AS ColName, dbo.sysproperties.[value] AS ColDesc
FROM dbo.sysproperties INNER JOIN
      dbo.sysobjects ON dbo.sysproperties.id = dbo.sysobjects.id INNER JOIN
      dbo.syscolumns ON dbo.sysobjects.id = dbo.syscolumns.id AND
      dbo.sysproperties.smallid = dbo.syscolumns.colid
ORDER BY dbo.sysobjects.name, dbo.syscolumns.colid

 

--主键、外键信息(简化)
select
 c_obj.name    as CONSTRAINT_NAME
 ,t_obj.name    as TABLE_NAME
 ,col.name    as COLUMN_NAME
 ,case col.colid
  when ref.fkey1 then 1  
  when ref.fkey2 then 2  
  when ref.fkey3 then 3  
  when ref.fkey4 then 4  
  when ref.fkey5 then 5  
  when ref.fkey6 then 6  
  when ref.fkey7 then 7  
  when ref.fkey8 then 8  
  when ref.fkey9 then 9  
  when ref.fkey10 then 10  
  when ref.fkey11 then 11  
  when ref.fkey12 then 12  
  when ref.fkey13 then 13  
  when ref.fkey14 then 14  
  when ref.fkey15 then 15  
  when ref.fkey16 then 16
 end      as ORDINAL_POSITION
from
 sysobjects c_obj
 ,sysobjects t_obj
 ,syscolumns col
 ,sysreferences  ref
where
 permissions(t_obj.id) != 0
 and c_obj.xtype in (F )
 and t_obj.id = c_obj.parent_obj
 and t_obj.id = col.id
 and col.colid   in
 (ref.fkey1,ref.fkey2,ref.fkey3,ref.fkey4,ref.fkey5,ref.fkey6,
 ref.fkey7,ref.fkey8,ref.fkey9,ref.fkey10,ref.fkey11,ref.fkey12,
 ref.fkey13,ref.fkey14,ref.fkey15,ref.fkey16)
 and c_obj.id = ref.constid
union
 select
 i.name     as CONSTRAINT_NAME
 ,t_obj.name    as TABLE_NAME
 ,col.name    as COLUMN_NAME
 ,v.number    as ORDINAL_POSITION
from
 sysobjects  c_obj
 ,sysobjects  t_obj
 ,syscolumns  col
 ,master.dbo.spt_values  v
 ,sysindexes  i
where
 permissions(t_obj.id) != 0
 and c_obj.xtype in (UQ ,PK)
 and t_obj.id = c_obj.parent_obj
 and t_obj.xtype  = U
 and t_obj.id = col.id
 and col.name = index_col(t_obj.name,i.indid,v.number)
 and t_obj.id = i.id
 and c_obj.name  = i.name
 and v.number  > 0
  and v.number    and v.type  = P

order by CONSTRAINT_NAME, ORDINAL_POSITION


--主键、外键对照(简化)
select
 fc_obj.name   as CONSTRAINT_NAME
 ,i.name     as UNIQUE_CONSTRAINT_NAME
from
 sysobjects fc_obj
 ,sysreferences r
 ,sysindexes i
 ,sysobjects pc_obj
where
 permissions(fc_obj.parent_obj) != 0
 and fc_obj.xtype = F
 and r.constid  = fc_obj.id
 and r.rkeyid  = i.id
 and r.rkeyindid  = i.indid
 and r.rkeyid  = pc_obj.id


------------------------------------------ ORACLE ----------------------------------------------------

--表信息
select * from all_tab_comments t
where owner=DBO

--列信息
select * from all_col_comments t
where owner=DBO

--主键、外键对照
select OWNER, CONSTRAINT_NAME, CONSTRAINT_TYPE, TABLE_NAME, R_OWNER, R_CONSTRAINT_NAME
from all_constraints
where owner=DBO and (Constraint_Type=P or Constraint_Type=R)


--主键、外键信息
select *
from all_cons_columns
where owner=DBO
order by Constraint_Name, Position


-------------------------------------------- Access ----------------------------------------------------
//Access中的系统表MSysobjects存储属性的字段是二进制格式,不能直接分析
//可以采用ADO自带的OpenSchema方法获得相关信息

  //use ADOInt.pas
  //po: TableName
  //DBCon:TADOConnection
  /ds:TADODataSet
 
--表信息
  DBCon.OpenSchema(siTables, VarArrayOf([Null, Null, Table]), EmptyParam, ds);

--列信息
  DBCon.OpenSchema(siColumns, VarArrayOf([Null, Null, po]), EmptyParam, ds);
 
--主键
  DBCon.OpenSchema(siPrimaryKeys, EmptyParam, EmptyParam, ds);
 
 
--主键、外键对照
  DBCon.OpenSchema(siForeignKeys, EmptyParam, EmptyParam, ds); 

 

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

如何在Python中获取文件扩展名? 如何在Python中获取文件扩展名? Sep 08, 2023 pm 01:53 PM

Python中的文件扩展名是附加在文件名末尾的后缀,用于表示文件的格式或类型。它通常由三个或四个字符组成,文件名后跟一个句点,例如“.txt”或“.py”。操作系统和程序利用文件扩展名来确定文件的类型以及应如何处理它。被识别为纯文本文件。Python中的文件扩展名在读取或写入文件时至关重要,因为它建立了文件格式以及读取和写入数据的最佳方法。例如,“.csv”文件扩展名是读取CSV文件时使用的扩展名,而csv模块则用于处理该文件。Python中获取文件扩展名的算法在Python中操作文件名字符串来

使用math.Max函数获取一组数中的最大值 使用math.Max函数获取一组数中的最大值 Jul 24, 2023 pm 01:24 PM

使用math.Max函数获取一组数中的最大值在数学和编程中,经常需要找出一组数中的最大值。在Go语言中,我们可以使用math包中的Max函数来实现这个功能。本文将介绍如何使用math.Max函数来获取一组数中的最大值,并提供相应的代码示例。首先,我们需要导入math包。在Go语言中,导入包可以使用import关键字,如下所示:import"mat

谷歌安全码在哪里获取 谷歌安全码在哪里获取 Mar 30, 2024 am 11:11 AM

谷歌验证器是一种用于保护用户账户安全的工具,其密钥是用于生成动态验证码的重要信息。如果忘记了谷歌验证器的密钥,只能通过安全码进行验证,那么下文本站小编就将为大家带来谷歌安全码在哪里获取的详细内容介绍,希望能帮助到大家,想要了解的用户们就请跟着下文继阅读吧!首先打开手机设置,进入设置页面。下拉页面,找到Google。进入Google页面,点击Google账号。进入账号页面,点击验证码下方的查看。输入密码或者使用指纹验证身份。获得Google安全码,利用安全码验证谷歌身份。

如何在Java中获取LinkedHashSet的最后一个元素? 如何在Java中获取LinkedHashSet的最后一个元素? Aug 27, 2023 pm 08:45 PM

从Java中的LinkedHashSet中检索最后一个元素意味着检索其集合中的最后一个元素。尽管Java没有内置方法来帮助检索LinkedHashSets中的最后一个项,但存在多种有效的技术,可以提供灵活性和便利性,有效地检索此最后一个元素而不破坏插入顺序-这是Java开发人员必须在其应用程序中有效处理的问题。通过将这些策略有效地应用于他们的软件项目中,他们可以实现满足此要求的最佳解决方案LinkedHashSetLinkedHashSet是Java中的一种高效数据结构,它结合了HashSet和

即刻获取最新更新:修复缺少最新更新问题 即刻获取最新更新:修复缺少最新更新问题 Nov 08, 2023 pm 02:25 PM

如果“最新更新可用后立即获取最新更新”选项缺失或灰显,则你可能正在运行开发人员频道Windows11版本,这是正常的。对于其他人,安装KB5026446(22621.1778)更新后会出现问题。您可以采取以下措施来取回“在最新更新可用时立即获取更新”选项。如何取回“在最新更新可用时立即获取更新”选项?在开始以下任何解决方案之前,请确保检查最新的Windows11更新并安装它们。1.使用ViVeTool转到“Microsoft更新目录”页面并查找KB5026446更新。在您的PC上下载并重新安装更

简易JavaScript教程:获取HTTP状态码的方法 简易JavaScript教程:获取HTTP状态码的方法 Jan 05, 2024 pm 06:08 PM

JavaScript教程:如何获取HTTP状态码,需要具体代码示例前言:在Web开发中,经常会涉及到与服务器进行数据交互的场景。在与服务器进行通信时,我们经常需要获取返回的HTTP状态码来判断操作是否成功,根据不同的状态码来进行相应的处理。本篇文章将教你如何使用JavaScript获取HTTP状态码,并提供一些实用的代码示例。使用XMLHttpRequest

获取给定复数的虚部的C++程序 获取给定复数的虚部的C++程序 Sep 06, 2023 pm 06:05 PM

现代科学在很大程度上依赖于复数的概念,这一概念最初是通过GirolamoCardano在16世纪引入的在17世纪初建立。复数的公式是a+ib,其中a保留html代码并且b是实数。一个复数被认为有两个部分:实部<a>和虚部(<ib>)。i或iota的值为√-1。C++中的复数类是一个用于表示复数的类。C++中的complex类可以表示并控制几个复数操作。我们来看一下如何表示和控制显示复数。imag()成员函数如前所述,复数由实部和虚部两部分组成。显示实部我们使用real()

真我 12 Pro怎么安装双卡? 真我 12 Pro怎么安装双卡? Mar 18, 2024 pm 02:10 PM

虽然说国产手机的大致操作是很相似的,但是在有的细节上面还是会有些区别的,比如说不同的手机型号和制造商可能会有不同的双卡安装方式。二真我12Pro这款新手机也是支持双卡双待的,但是这款手机具体又应该怎么安装双卡呢?真我12Pro怎么安装双卡?在安装之间记得先把手机关机哟。步骤一查找SIM卡托盘:查找手机的SIM卡托盘,通常,在真我12Pro中,SIM卡托盘位于手机的侧边或顶部。步骤二插入第一张SIM卡,使用专用的SIM卡针或一个细小的物体,将其插入SIM卡托盘中的开槽,然后,将第一张SIM卡小心地

See all articles