SqlServer中Sql查看存储过程
(⼀)利⽤Sql语句查询中的所有表
1.利⽤sysobjects系统表
select * from sysobjects where xtype='U'
2,利⽤sys.tables⽬录视图
sys.tables⽬录视图,为每个表对象返回⼀⾏.
select * from sys.tables
注意:sys.tables⽬录视图也只有在SQL SERVER2005及以上的版本中才能使⽤。
3,利⽤存储过程sp_tables
exec sp_tables
(⼆)利⽤Sql语句查询数据中的所有存储过程
sql存储过程实例1.sysobjects系统表,在数据库中创建的每个对象(例如约束、默认值、⽇志、规则以及存储过程)都有对应⼀⾏,我们在该表中筛选出xtype等于P的所有记录,就为数据库中的存储过程了。
select * from sysobjects where xtype='P'
select * from sys.objects where type='P'
2.sys.procedures⽬录视图,每个存储过程都会在返回结果集中占⼀⾏.
select * from sys.procedures
适⽤技巧:
Sql Server查看所有存储过程或视图的位置及内容
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 ⽂本
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论