
( 一)利用SQL语句查询数据库中的所有表
1.利用sysobjects系统表
| 1 | select * from sysobjects where xtype= ‘U‘ |
2,利用sys.tables目录视图
sys.tables目录视图,为每个表对象返回一行.
| 1 | select * from sys.tables |
注意:sys.tables目录视图也只有在sql SERVER2005及以上的版本中才能使用。
3,利用存储过程sp_tables
| 1 | exec sp_tables |
(二)利用SQL语句查询数据中的所有存储过程
1.sysobjects系统表,在数据库中创建的每个对象(例如约束、默认值、日志、规则以及存储过程)都有对应一行,我们在该表中筛选出xtype等于P的所有记录,就为数据库中的存储过程了。
| 1 2 | select * from sysobjects where xtype= ‘P‘ select * from sys.objects where type= ‘P‘ |
2.sys.procedures目录视图,每个存储过程都会在返回结果集中占一行.
| 1 | select * from sys.procedures |
适用技巧:
sql Server查看所有存储过程或视图的位置及内容
| 1 2 3 | select a. name ,a.[type],b.[deFinition] from sys.all_objects a,sys.sql_modules b where a.is_ms_shipped=0 and a.object_ID = b.object_ID and a.[type] in ( ‘P‘ , ‘V‘ , ‘AF‘ ) order by a.[ name ] asc |
从上面的SQL语句可以看出,主要用到了两个 sys.all_objects 和 sys.sql_modules 两个系统存储过程,
其中 sys.all_objects 是 sql server 2012 版本中的系统视图,在 更早期的 sql server 版本中,
应该用 sys.objects,同时,sys.objects 在 2012 中也是可以用的,只不过考虑到后续兼容性,在新版本中,用新的 name 还是比较好。
Sys.All_Objects(sys.objects)
该视图 很出名,是经常使用到的,主要是:显示所有架构范围内的用户定义对象和系统对象的 UNION
主要字段:
1. name:对象名
2. Object_ID:对象标识号,在数据中是唯一的
3. Principal_ID :架构所有者ID
4. Parent_object_ID:此对象所属对象的ID,0 = 不是子对象
5. Type:对象类型,常用的类型有,AF = 聚合函数 P = sql 存储过程 V = 视图 TT = 表类型 U = 表(用户定义类型)
6. Type_desc:对象类型的说明
7. Create_date / Modify_date :创建日期 / 修改日期
8. is_ms_shipped:是否为 内部 sql Server 组建所创建的对象,常用来判断 是否是 系统内置或用户自定义 的对象
Sys.sql_Modules
对每个 sql 语言定义的模块对象都返回一行。 类型为 P、RF、V、TR、FN、IF、TF 和 R 的对象均有关联的 sql 模块。
主要字段:
1. Object_ID:对象标识号,在数据中是唯一的
2. DeFinition:用于定义此模块的 sql 文本
@H_458_404@ 总结以上是内存溢出为你收集整理的SqlServer中Sql查看存储过程全部内容,希望文章能够帮你解决SqlServer中Sql查看存储过程所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)