使用信息架构视图访问数据库元数据

编程之家收集整理的这篇文章主要介绍了使用信息架构视图访问数据库元数据编程之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

搜索热词

元数据简介

元数据 (Metadata) 最常见的定义为"有关数据的结构数据",或者再简单一点就是"关于数据的信息",日常生活中的图例、图书馆目录卡和名片等都可以看作是元数据。在关系型数据库管理系统 (DBMS) 中,元数据描述了数据的结构和意义。比如在管理、维护 sql Server 或者是开发数据库应用程序的时候,我们经常要获取一些涉及到数据库架构的信息:

  1. 某个数据库中的表和视图的个数以及名称
  2. 某个表或者视图中列的个数以及每一列的名称、数据类型、长度、精度、描述等;
  3. 某个表上定义的约束;
  4. 某个表上定义的索引以及主键/外键的信息。

    信息架构视图基于 sql-92 标准中针对架构视图的定义,这些视图独立于系统表,提供了关于 sql Server 元数据的内部视图。信息架构视图的最大优点是,即使我们对系统表进行了重要的修改,应用程序也可以正常地使用这些视图进行访问。因此对于应用程序来说,只要是符合 sql-92 标准的数据库系统,使用信息架构视图总是可以正常工作的。

常用的信息架构视图有以下一些:

信息架构视图 描述
INFORMATION_SCHEMA .CHECK_CONSTRAINTS 返回有关列或过程参数的信息,如是否允许空值,是否为计算列等。
INFORMATION_SCHEMA .COLUMNS 返回当前数据库中当前用户可以访问的所有列及其基本信息。
INFORMATION_SCHEMA .CONSTRAINT_COLUMN_USAGE 返回当前数据库中定义了约束的所有列及其约束名。
INFORMATION_SCHEMA .CONSTRAINT_TABLE_USAGE 返回当前数据库中定义了约束的所有表及其约束名。
INFORMATION_SCHEMA .KEY_COLUMN_USAGE 返回当前数据库中作为主键/外键约束的所有列。
INFORMATION_SCHEMA .SCHEMATA 返回当前用户具有权限的所有数据库及其基本信息。
INFORMATION_SCHEMA .TABLES 返回当前用户具有权限的当前数据库中的所有表或者视图及其基本信息。
INFORMATION_SCHEMA .VIEWS 返回当前数据库中的当前用户可以访问的视图及其所有者、定义等信息。

由于这些信息架构都是以视图的方式存在的,因此我们可以很方便地获得并利用需要的信息。

所以很容易的利用数据库元数据信息实现ORM功能,下面是几个常用的sql

       //获取表的所有列
       public const string TABLE_COLUMN_sql = " SELECT     TABLE_CATALOG AS [Database],TABLE_SCHEMA AS Owner,TABLE_NAME AS TableName,COLUMN_NAME AS ColumnName,  " +
                          "ORDINAL_POSITION AS OrdinalPosition,COLUMN_DEFAULT AS DefaultSetting,IS_NULLABLE AS IsNullable,DATA_TYPE AS DataType,  " +
                          "CHARACTER_MAXIMUM_LENGTH AS MaxLength,NUMERIC_PRECISION AS Precision,DATETIME_PRECISION AS DatePrecision " +
                           "FROM         INFORMATION_SCHEMA.COLUMNS " +
                           "WHERE     (TABLE_NAME = @tblName) ";

         //获取表的所有存储过程和参数
         public const string SP_PARAM_sql="SELECT     SPECIFIC_CATALOG AS [Database],SPECIFIC_SCHEMA AS Owner,SPECIFIC_NAME AS SPName,ORDINAL_POSITION AS OrdinalPosition,  " +
                       "PARAMETER_MODE AS ParamType,IS_RESULT AS IsResult,PARAMETER_NAME AS Name,  " +
                       "CHARACTER_MAXIMUM_LENGTH AS DataLength,REPLACE(PARAMETER_NAME,'@','') AS CleanName " +
                       "FROM         INFORMATION_SCHEMA.PARAMETERS " +
                       "WHERE SPECIFIC_NAME=@spName";

        //获取表的所有存储过程的sql
         public const string SP_sql = " SELECT     SPECIFIC_CATALOG AS [Database],SPECIFIC_NAME AS Name,ROUTINE_DEFINITION AS sql,CREATED AS CreatedOn," +
                          "LAST_ALTERED AS ModifiedOn " +
                          "FROM         INFORMATION_SCHEMA.ROUTINES " +
                           "WHERE     (SPECIFIC_NAME = @spName) ";

      //获取表的所有存储过程 
      public const string TABLE_sql = "SELECT     TABLE_CATALOG AS [Database],TABLE_NAME AS Name,TABLE_TYPE "+
             "FROM         INFORMATION_SCHEMA.TABLES "+
                "WHERE     (TABLE_TYPE = 'BASE TABLE') AND (TABLE_NAME <> N'sysdiagrams') " +
             "AND TABLE_NAME=@tblName";

总结

以上是编程之家为你收集整理的使用信息架构视图访问数据库元数据全部内容,希望文章能够帮你解决使用信息架构视图访问数据库元数据所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您喜欢寻找一群志同道合、互帮互助的学习伙伴,可以点击下方链接加入:
编程之家官方1群
编程之家官方2群
编程之家官方3群
编程之家官方4群

相关文章

猜你在找的MsSQL相关文章

目录问题描述:排查方法:(一)首先是要检查SQLServer数据库服务器中是否允许远程链接。其具体操作为:(二)为微软SQL服务器(MSSQLServer)配置相应协议。(三)检查SQL服务器防火墙设置 (快捷步骤-直接关闭防火墙(不安全))问题描述:新安装的SqlServer数据。无法使用ip地址进行连接,只能通过windows方式登录。排查方法:(一)首先是要检查SQLServer数据库服务器中是否允许远程链接。其具体操作为:(1)打开数据库,用本地帐户登录,右击
sqlserver08R2 sqlserver2012R2下载路径,在本文末尾,已共享到百度网盘。有需要可下载。两个版本的安装方式完全一样。1、打开安装包,点击setup.exe,默认是管理员用户安装,如果setup.exe上没有管理员图标,请右键setup.exe,选择以管理员身份运行。2、安装3、选择"全新安装或向现有安装添加功能"。4、检测完成点击确定。5、选择版本和密钥,然后下一步。(博主上传的安装包里,自带秘钥。)6、选择“我接受许可条款”。点击下一.
介绍如何在 Microsoft SQL Server 中生成连续的数字、字符或者时间序列值,包括使用系统视图 master.dbo.spt_values 、使用通用表表达式以及自定义的表值函数 generate_series 生成各种数据序列。
讨论如何在 Microsoft SQL Server 中实现一个只能存储一行数据的表,介绍了基于计算列创建唯一约束的实现方法。使用 MERGE 插入和更新数据,同时为了防止数据被删除,通过触发器禁止删除操作。
本文详细介绍了 Microsoft SQL Server 数据库的体系结构以及各个组件的功能。包括整体结构,协议层中的TCP/IP协议、共享内存协议、命名管道协议以及TDS协议、关系引擎中的命令解析器、查询优化器、查询执行器,存储引擎中的访问方法、缓冲管理器、事务管理器,数据文件以及日志文件。
本文介绍了如何利用 Microsoft SQL Server 中的 CASE 表达、len、left、right、stuff、concat 等字符串函数实现信息的隐藏,也就是将其中部分内容显示为星号(*)。具体案例包括姓名、手机号、身份证号以及银行卡号等个人敏感信息的保护。
元数据 (metadata) 最常见的定义为'有关数据的结构数据',或者再简单一点就是'关于数据的信息',日常生活中的图例、图书馆目录卡和名片等都可以看作是元数据。在关系型数据库管理系统 (DBMS)
1、在安装上和SQL Server 2005比较上更加丰富的选项设置. 2、SQL Server 2008的新特性FILESTREAM ,可以在安装时配置,也可以在安装后启用。3、两个小工具调整。