SqlServer中Sql查看存储过程 SqlServer中Sql查看存储过程

SqlServer中Sql查看存储过程

 

( 一)利用Sql语句查询数据库中的全部表html

1.利用sysobjects系统表mysql

1
select  from  sysobjects  where  xtype= 'U'

 2,利用sys.tables目录视图sql

sys.tables目录视图,为每一个表对象返回一行.数据库

1
select  from  sys.tables

 注意:sys.tables目录视图也只有在SQL SERVER2005及以上的版本中才能使用。架构

3,利用存储过程sp_tables函数

 

1
exec  sp_tables

 

 (二)利用Sql语句查询数据中的全部存储过程post

1.sysobjects系统表,在数据库中建立的每一个对象(例如约束、默认值、日志、规则以及存储过程)都有对应一行,咱们在该表中筛选出xtype等于P的全部记录,就为数据库中的存储过程了。url

 

1
2
select  from  sysobjects  where  xtype= 'P'
select  from  sys.objects  where  type= 'P'

 

  2.sys.procedures目录视图,每一个存储过程都会在返回结果集中占一行.spa

 

1
select  from  sys.procedures

 

 

适用技巧:.net

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 文本

相关文章
相关标签/搜索