使用信息架构视图访问数据库元数据
版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://shanyou.blog.51cto.com/363653/74962 | ||||||||||||||||||
元数据简介
元数据 (metadata) 最常见的定义为"有关数据的结构数据",或者再简单一点就是"关于数据的信息",日常生活中的图例、图书馆目录卡和名片等都可以看作是元数据。在关系型数据库管理系统 (DBMS) 中,元数据描述了数据的结构和意义。比如在管理、维护 SQL Server 或者是开发数据库应用程序的时候,我们经常要获取一些涉及到数据库架构的信息:
常用的信息架构视图有以下一些:
由于这些信息架构都是以视图的方式存在的,因此我们可以很方便地获得并利用需要的信息。
所以很容易的利用数据库元数据信息实现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, DATA_TYPE AS DataType, " + "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_SCHEMA AS Owner, 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_SCHEMA AS Owner, TABLE_NAME AS Name, TABLE_TYPE "+ "FROM INFORMATION_SCHEMA.TABLES "+ "WHERE (TABLE_TYPE = 'BASE TABLE') AND (TABLE_NAME <> N'sysdiagrams') " + "AND TABLE_NAME=@tblName"; 自由、创新、研究、探索…… 本文出自 “张善友” 博客,请务必保留此出处http://shanyou.blog.51cto.com/363653/74962 本文出自 51CTO.COM技术博客 |


张善友
博客统计信息
热门文章
最新评论
友情链接