首先明确数据库对象的定义:数据库对象定义数据库内容的结构。它们包含在数据库项目中,数据库项目还可以包含数据生成计划和脚本。

常见的数据库对象包括:表,索引,视图,图表,缺省值,规则,触发器,存储过程,函数等

1.sys.objects视图

数据库中创建的每一个对象都对应表中的一行,但不包括DDL触发器,查询触发器应该使用sys.triggers

常见的不同类型对象在sys.objects中的区分:

类型 type列 type_desc列
FOREIGN KEY 约束 F FOREIGN_KEY_CONSTRAINT
SQL 标量函数 FN SQL_SCALAR_FUNCTION
SQL 内联表值函数 IF SQL_INLINE_TABLE_VALUED_FUNCTION
内部表 IT INTERNAL_TABLE
SQL 存储过程 P SQL_STORED_PROCEDURE
PRIMARY KEY 约束 PK PRIMARY_KEY_CONSTRAINT
系统基表 S SYSTEM_TABLE
SQL 表值函数 TF SQL_TABLE_VALUED_FUNCTION
表(用户定义类型) U USER_TABLE
UNIQUE 约束 UQ UNIQUE_CONSTRAINT
视图 V View

因此查询数据库中包含的对象可以直接查询sys.objects视图,比如:查询数据库中所有的视图

 SELECT * FROM sys.objects WHERE type = 'U'

由于对象id在对应数据库中是唯一的,可以在查询时联结其他表或视图,比如:查询数据库中所有存储过程及其内容

 SELECT O.name, M.definition FROM sys.objects O
JOIN sys.sql_modules M ON M.object_id = O.object_id
WHERE O.type = 'P'

2.其他查询方法

存储过程有单独的系统视图sys.procedures,基本等价于sys.objects WHERE type = 'P'

另外还可以执行系统sp查询存储过程:EXEC sp_stored_procedures,不同的是:

sys.procedures (或sys.objects WHERE type = 'P')只包含用户存储过程,但执行sp_stored_procedures可以查询所有种类的存储过程和除了系统函数之外的所有函数

3.sys.modules视图

为每个包含 SQL 语言定义模块的系统对象返回一行,类型为 FN、IF、P、PC、TF 和 V 的系统对象具有关联的 SQL 模块。

因此,对于这些类型的对象,可以联结sys.objects查询对象的语言定义模块,即其内容。

4.sp_helptext需要注意的

sp_helptext是使用频率非常高的系统存储过程,使用它可以快速列出指定名称存储过程或函数的内容,但是有如下缺点:

①格式化代码

②当一行长度超过一定后,分行显示

这样当修改存储过程或函数时,如果使用sp_helptext很可能导致格式错乱,对于下一次的代码阅读造成很大的麻烦。

因此,建议sp_helptext仅限于查看存储过程或函数的内容。

另外,加密的存储过程不能通过sp_helptext查询。

本文待补充

最新文章

  1. Solr Facet 默认值
  2. 文件上传大小js判断
  3. C#.NET 大型企业信息化系统集成快速开发平台 4.2 版本 - 实现缓存预热
  4. mysql_fetch_array,mysql_fetch_row,mysql_fetch_assoc区别
  5. MySQL5.6 GTID、多线程复制
  6. ADT开发AndroidManifest.xml file missing错误
  7. 【Machine Learning】wekaの特征选择简介
  8. 第几天 AC 杭电
  9. [转]Linux Shell History (快速使用Linux命令)
  10. 201521123054《Java程序设计》第4周总结
  11. memcache调整value大小限制
  12. grep 、find 、tree 新发现
  13. HashMap原理阅读
  14. init启动进程
  15. 关于阿里ICON矢量图(SVG)上传问题.
  16. 从零开始学 Web 之 CSS3(二)颜色模式,文字阴影,盒模型,边框圆角,边框阴影
  17. javascript中call,apply,bind的用法对比分析
  18. [web前端] 去哪儿网前端架构师司徒正美:如何挑选适合的前端框架?
  19. winform 操作注册表提示没有权限解决办法
  20. Entity Framework框架 (一)

热门文章

  1. [置顶] 获取系统时间的方法--linux
  2. HBase 1、HBase介绍和工作原理
  3. iOS 创建上线证书
  4. ADO.NET改进版
  5. js实现form表单提交,图片预览功能
  6. Oracle运维 专业的事情交给专业的人来做
  7. transactionscope报“此操作对该事务的状态无效”问题
  8. Ugly Number,Ugly Number II,Super Ugly Number
  9. linux 中ls命令函数
  10. Django模板-在视图中使用模板